分类刷题之 leetcode 数组链表
文章目录
01:移动零
题目链接:移动零
思路:此题较简单,采用双指针法,设一个变量k,初始值设为0。循环遍历数组,若碰到不为0的数,则将该值赋值给k所在位置,若i = k,则只需将k++即可,反之,则需将索引 i 所在位置的值赋为0,因为它的值已经赋予到k所在位置了,然后k++.遍历完成之后,所有的0也就移到了末尾了
class Solution {
public void moveZeroes(int[] nums) {
int k = 0;
for(int i = 0;i<nums.length;i++){
if(nums[i] != 0){
nums[k] = nums[i];
if(i!=k)
nums[i] = 0;
k++;
}
}
}
}
02:盛水最多的容器
题目链接:盛水最多的容器
思路:
03:爬楼梯
题目链接:爬楼梯
思路:
04:三数之和
题目链接:三数之和
思路:
05:环形链表
题目链接:环形链表
思路:
06:删除有序数组中的重复项
题目链接:删除有序数组中的重复项
思路:
07:旋转数组
题目链接:旋转数组
思路:
08:合并两个有序数组
题目链接:合并两个有序数组
思路:
09:合并两个有序链表
题目链接:合并两个有序链表
思路:
10:两数之和
题目链接:两数之和
思路:
11:加一
题目链接:加一
思路:此题很巧妙,特别是最后两行代码。
class Solution {
public int[] plusOne(int[] digits) {
for (int i = digits.length - 1; i >= 0; i--) {
digits[i]++;
digits[i] = digits[i] % 10;
if (digits[i] != 0) return digits;
}
digits = new int[digits.length + 1];
digits[0] = 1;
return digits;
}
}
作者:yhhzw
链接:https://leetcode-cn.com/problems/plus-one/solution/java-shu-xue-jie-ti-by-yhhzw/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。