前言
###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!
习题
tip:部分题我暴力写法,没按照题目限制要求,建议看看题解
1.轮转数组
题目链接:189. 轮转数组 - 力扣(LeetCode)
题面:
代码:
java">class Solution {public void rotate(int[] nums, int k) {int n = nums.length;k = k%n;int[] arr = new int[n-k];for(int i = 0;i<n-k;i++){arr[i] = nums[i];}for(int i = n-k;i<n;i++){nums[(i+k)%n] = nums[i];}int count = 0;for(int i = k;i<n;i++){nums[i] = arr[count++];}}
}
2.除自身以外数组的乘积
题目链接:238. 除自身以外数组的乘积 - 力扣(LeetCode)
题面:
代码:
java">class Solution {public int[] productExceptSelf(int[] nums) {int sum = 1;int n = nums.length;int flag = 0;for(int i = 0;i<n;i++){if(nums[i]==0){flag++;continue;}sum*=nums[i];}for(int i = 0;i<n;i++){if(flag>=2)nums[i] = 0;else if(flag==1&&nums[i]!=0)nums[i] = 0;else if(nums[i]!=0)nums[i] = sum/nums[i];else nums[i] = sum;}return nums;}
}
3.缺失的第一个正数
题目链接:41. 缺失的第一个正数 - 力扣(LeetCode)
题面:
代码:
java">class Solution {public int firstMissingPositive(int[] nums) {Map<Integer,Integer> map = new HashMap<>();int n = nums.length;for(int i = 0;i<n;i++){map.put(nums[i],1);}for(int i = 1;i<=100006;i++){if(map.getOrDefault(i,0)==0)return i;}return 0;}
}
后言
上面是力扣Hot100的数组专题,下一篇是其他专题的习题,希望有所帮助,一同进步,共勉!