Java练习 day1(LeetCode简单题15道)

一、两数之和

1、题目链接

点击跳转到题目位置

2、代码

class Solution {public int[] twoSum(int[] nums, int target) {for(int i = 0; i < nums.length; ++i){for(int j = i+1; j < nums.length; ++j){if(nums[i] + nums[j] == target){return new int[]{i, j};}}}return new int[]{0, 0};}
}

二、回文数

1、题目链接

点击跳转到题目位置

2、代码

class Solution {public boolean isPalindrome(int x) {if(x < 0 || (x % 10 == 0 && x != 0)){return false;}int reverseNumber = 0;while(x > reverseNumber){reverseNumber = reverseNumber * 10 + x % 10;x /= 10;}return reverseNumber / 10 == x || reverseNumber == x;}
}

三、罗马数字转整数

1、题目链接

点击跳转到题目位置

2、代码

class Solution {Map<Character, Integer> symbplValues = new HashMap<Character, Integer>(){{put('I', 1);put('V', 5);put('X', 10);put('L', 50);put('C', 100);put('D', 500);put('M', 1000);}};public int romanToInt(String s) {int res = 0;int n = s.length();for(int i = 0; i < n; ++i){int num = symbplValues.get(s.charAt(i));if(i == n - 1){res += num;continue;}int num1 = symbplValues.get(s.charAt(i+1));if(num1 > num){res += (num1 - num);++i; } else{res += num;}}return res;}
}

四、最长公共前缀

1、题目链接

点击跳转到题目位置

2、代码

class Solution {public String longestCommonPrefix(String[] strs) {if(strs == null || strs.length == 0){return "";}String res = new String();int max_length = 1000000;for(int i = 0; i < strs.length; ++i){max_length = Math.min(max_length, strs[i].length());}for(int i = 0; i < max_length; ++i){char ch = strs[0].charAt(i);for(int j = 1; j < strs.length; ++j){if(strs[j].charAt(i) != ch){return res;}}res += ch;}return res;}
}

五、有效的括号

1、题目链接

点击跳转到题目位置

2、代码

class Solution {public boolean isValid(String s) {int n = s.length();if((n & 1) == 1){return false;}Deque<Character> stack = new LinkedList<Character>();for(int i = 0; i < n; ++i){if(stack.isEmpty()){stack.push(s.charAt(i));} else{if((stack.peek() == '(' && s.charAt(i) == ')')|| (stack.peek() == '[' && s.charAt(i) == ']')|| (stack.peek() == '{' && s.charAt(i) == '}')){stack.pop(); } else{stack.push(s.charAt(i));}}}return stack.isEmpty();}
}

六、合并两个有序链表

1、题目链接

点击跳转到题目位置

2、代码

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {if(list1 == null){return list2;} else if(list2 == null){return list1;} else if(list1.val < list2.val){list1.next = mergeTwoLists(list1.next, list2);return list1;} else{list2.next = mergeTwoLists(list2.next, list1);return list2;}}
}

七、删除有序数组中的重复项

1、题目链接

点击跳转到题目位置

2、代码

class Solution {public int removeDuplicates(int[] nums) {int left = 0;int right = 0;int n = nums.length;while(right < n){while(right < n - 1 && nums[right] == nums[left]){++right;}if(right == n - 1 && nums[left] == nums[right]){break;}++left;nums[left] = nums[right];      }return left + 1;}
}

八、移除元素

1、题目链接

点击跳转到题目位置

2、代码

class Solution {public int removeElement(int[] nums, int val) {int left = 0;int right = 0;int n = nums.length;while(right < n){if(nums[right] == val){++right;continue;} else{nums[left] = nums[right];++left;++right;}}return left;}
}

九、找出字符串中第一个匹配项的下标

1、题目链接

点击跳转到题目位置

2、代码

class Solution {public int strStr(String haystack, String needle) {for(int i = 0; i < haystack.length(); ++i){int flag = 0;if(i + needle.length() > haystack.length()){break;}for(int j = 0; j < needle.length(); ++j){if(haystack.charAt(i + j) != needle.charAt(j)){flag = -1;break;}}if(flag == 0){return i;}}return -1;}
}

十、搜索插入位置

1、题目链接

点击跳转到题目位置

2、代码

class Solution {public int searchInsert(int[] nums, int target) {int left = 0;int right = nums.length - 1;int ans = -1;while(left <= right){int mid = ((right - left) >> 1) + left;if(nums[mid] == target){return mid;} else if(nums[mid] < target){left = mid + 1; } else{ans = mid;right = mid - 1;}}if(ans == -1){return nums.length;}return ans;}
}

十一、最后一个单词的长度

1、题目链接

点击跳转到题目位置

2、代码

class Solution {public int lengthOfLastWord(String s) {int len = 0;int flag = 0;for(int i = 0; i < s.length(); ++i){if(s.charAt(i) == ' '){flag = 1;} else{if(flag == 1){len = 1;flag = 0;} else{++len;}}}return len;}
}

十二、加一

1、题目链接

点击跳转到题目位置

2、代码

class Solution {public int[] plusOne(int[] digits) {int n = digits.length;for(int i = n - 1; i >= 0; --i){digits[i] = (digits[i] + 1) % 10;if(digits[i] != 0){return digits;}}digits = new int[digits.length + 1];digits[0] = 1;return digits;}
}

十三、二进制求和

1、题目链接

点击跳转到题目位置

2、代码

class Solution {public String addBinary(String a, String b) {StringBuffer ans = new StringBuffer();int i = a.length() - 1;int j = b.length() - 1;int carry = 0;while(i >= 0 && j >= 0){int num1 = a.charAt(i) - '0';int num2 = b.charAt(j) - '0';int num = (num1 + num2 + carry) % 2;carry = (num1 + num2 + carry) / 2;ans.append(num);--i;--j;}while(i >= 0){int num1 = a.charAt(i) - '0';int num = (num1 + carry) % 2;carry = (num1 + carry) / 2;ans.append(num);--i;}while(j >= 0){int num2 = b.charAt(j) - '0';int num = (num2 + carry) % 2;carry = (num2 + carry) / 2;ans.append(num);--j;}if(carry == 1){ans.append(1);}ans.reverse();return ans.toString();}
}

十四、x 的平方根

1、题目链接

点击跳转到题目位置

2、代码

class Solution {public int mySqrt(int x) {int left = 0;int right = x;int ans = -1;while(left <= right){int mid = ((right - left) >> 1) + left;long num = (long)mid * mid;if(num == x){return mid;} else if(num < x){ans = mid;left = mid + 1;} else{right = mid - 1;}}return ans;}
}

十五 爬楼梯

1、题目链接

点击跳转到题目位置

2、代码

class Solution {public int climbStairs(int n) {int []dp = new int[n+1];dp[0] = 1;dp[1] = 1;for(int i = 2; i <= n; ++i){dp[i] = dp[i-1] + dp[i-2];}return dp[n];}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/147027.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】UDP的服务端 + 客户端

文章目录 &#x1f4d6; 前言1. TCP和UDP2. 网络字节序2.1 大小端字节序&#xff1a;2.2 转换接口&#xff1a; 3. socket接口3.1 sockaddr结构&#xff1a;3.2 配置sockaddr_in&#xff1a;3.3 inet_addr&#xff1a;3.4 inet_ntoa&#xff1a;3.5 bind绑定&#xff1a; 4. 服…

【面试经典150 | 矩阵】旋转图像

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;原地旋转方法二&#xff1a;翻转代替旋转 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带…

线性表的链式存储结构——链表

一、顺序表优缺点 优点&#xff1a;我们知道顺序表结构简单&#xff0c;便于随机访问表中任一元素&#xff1b; 缺点&#xff1a;顺序存储结构不利于插入和删除&#xff0c;不利于扩充&#xff0c;也容易造成空间浪费。 二、链表的定义 ①&#xff1a;概念&#xff1a; 用一组任…

Springboot+vue的在线试题题库管理系统(有报告),Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的在线试题题库管理系统&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的在线试题题库管理系统&#xff0c;采用M&…

PHP 数码公司运营管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 数码公司运营管理系统系统是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 php 数码公司运营管理系统 代码 https://download.csdn.net/download/qq_41…

基于 jasypt 实现spring boot 配置文件脱敏

前言 在项目构建过程中&#xff0c;保护敏感信息的安全性至关重要&#xff0c;为了提高系统的安全性能&#xff0c;我们采用了Jasypt来对配置文件中的敏感信息进行加密处理&#xff0c;以确保系统的机密信息不被轻易泄露。 步骤 添加Maven依赖 首先&#xff0c;我们需要添加…

【kubernetes】kubernetes中的StatefulSet使用

TOC 1 为什么需要StatefulSet 常规的应用通常使用Deployment&#xff0c;如果需要在所有机器上部署则使用DaemonSet&#xff0c;但是有这样一类应用&#xff0c;它们在运行时需要存储一些数据&#xff0c;并且当Pod在其它节点上重建时也希望这些数据能够在重建后的Pod上获取&…

buuctf-[Zer0pts2020]Can you guess it?

点击source&#xff0c;进入源代码 <?php include config.php; // FLAG is defined in config.phpif (preg_match(/config\.php\/*$/i, $_SERVER[PHP_SELF])) {exit("I dont know what you are thinking, but I wont let you read it :)"); }if (isset($_GET[so…

【算法学习】-【双指针】-【复写零】

LeetCode原题链接&#xff1a;1089. 复写零 下面是题目描述&#xff1a; 给你一个长度固定的整数数组 arr &#xff0c;请你将该数组中出现的每个零都复写一遍&#xff0c;并将其余的元素向右平移。 注意&#xff1a;请不要在超过该数组长度的位置写入元素。请对输入的数组 …

【浅记】分而治之

归并排序 算法流程&#xff1a; 将数组A[1,n]排序问题分解为A[1,n/2]和A[n/21,n]排序问题递归解决子问题得到两个有序的子数组将两个子数组合并为一个有序数组 符合分而治之的思想&#xff1a; 分解原问题解决子问题合并问题解 递归式求解 递归树法 用树的形式表示抽象递…

7.网络原理之TCP_IP(下)

文章目录 4.传输层重点协议4.1TCP协议4.1.1TCP协议段格式4.1.2TCP原理4.1.2.1确认应答机制 ACK&#xff08;安全机制&#xff09;4.1.2.2超时重传机制&#xff08;安全机制&#xff09;4.1.2.3连接管理机制&#xff08;安全机制&#xff09;4.1.2.4滑动窗口&#xff08;效率机制…

uni-app:实现元素在屏幕中的居中(绝对定位absolute)

一、实现水平居中 效果 代码 <template><view><view class"center">我需要居中</view></view> </template><style>.center {position: absolute;left:50%;transform: translateX(-50%);border:1px solid black;} </s…

freertos简介与移植

freertos是一个可裁剪的小型rtos系统&#xff0c;特点&#xff1a; 支持抢占式&#xff0c;合作式和时间片调度saferos衍生自freertos&#xff0c;更完整提供了一个用于低功耗的tickless模式系统的组件在创建时可以选择动态或者静态的ram&#xff0c;例如任务&#xff0c;消息…

快排三种递归及其优化,非递归和三路划分

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 快排简介&#xff1a; 快排的三种递归实现&#xff1a; Hoare&#xff1a; 挖坑&#xff1a; 双指针&#xff1a; 小区间优化&#xff1a; 三数取中优化&#xff1a; 快排非递归实现&#xff1a; 快排的三路划…

计算机网络(一):概述

参考引用 计算机网络微课堂-湖科大教书匠计算机网络&#xff08;第7版&#xff09;-谢希仁 1. 计算机网络在信息时代的作用 计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施计算机网络已经像水、电、煤气这些基础设施一样&#xff0c;成为我们生活中不可或…

《CTFshow-Web入门》10. Web 91~110

Web 入门 索引web91题解总结 web92题解总结 web93题解 web94题解 web95题解 web96题解 web97题解 web98题解 web99题解总结 web100题解 web101题解 web102题解 web103题解 web104题解 web105题解总结 web106题解 web107题解 web108题解 web109题解 web110题解 ctf - web入门 索…

红外遥控器 数据格式,按下及松开判断

红外遥控是一种无线、非接触控制技术&#xff0c;具有抗干扰能力强&#xff0c;信息传输可靠&#xff0c;功耗低&#xff0c;成本低&#xff0c;易实现等显著优点&#xff0c;被诸多电子设备特别是家用电器广泛采用&#xff0c;并越来越多的应用到计算机系统中。 同类产品的红…

iOS 视频压缩 mov转mp4 码率

最近还是因为IM模块的功能&#xff0c;IOS录制MOV视频发送后&#xff0c;安卓端无法播放&#xff0c;迫不得已兼容将MOV视频转为MP4发送。 其中mov视频包括4K/24FPS、4K/30FPS、4K/60FPS、720p HD/30FPS、1080p HD/30FPS、1080p HD/60FPS&#xff01; 使用AVAssetExportSessi…

使用sqlmap获取数据步骤

文章目录 1.使用sqlmap获取所有数据库2.使用sqlmap获取当前连接数据库3.使用sqlmap获取当前数据库下所有表名4.使用sqlmap获取当前数据库下某个表下所有列名5.使用sqlmap获取当前数据库下某个表下指定字段的数据6.测试当前用户是否是管理员7.使用burpsqlmap批量检测8.脱库命令9…

zkLogin构建者的最佳实践和业务思考

随着zkLogin在Sui主网上线&#xff0c;构建者可以开始为其应用程序提供丝滑的帐户创建服务。与任何新技术集成一样&#xff0c;构建者需要考虑许多重要的问题&#xff0c;以降低风险并成功优化。 本文概述了其中一些考虑因素&#xff0c;并突出了zkLogin文档中提供的明确指导。…