力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台力扣977 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
提醒:非递减序列:就是减少,但不是递减,存在相等
双指针
class Solution {
public int[] sortedSquares(int[] nums) {
int n=nums.length;
int l=0;
int r=n-1;
int []result=new int[n];
int index=n-1;
while (l<=r){
if(nums[l]*nums[l]<=nums[r]*nums[r]){
result[index]=nums[r]*nums[r];
index-=1;
r-=1;
}
else{
result[index]=nums[l]*nums[l];
index-=1;
l+=1;
}
}
return result;
}
}
力扣59 螺旋矩阵||力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
提醒:多层for循环,关键在于转圈的逻辑,二分法中提到的区间定义
class Solution {
public int[][] generateMatrix(int n) {
int nums [][]=new int[n][n];
int loop=1;
int set=1;
int sx=0;
int sy=0;
int count=1;
int i,j;
while (loop<=n/2){
for (j=sy;j<n-set;j++){
nums[sx][j]=count++;
}
for (i=sx;i<n-set;i++){
nums[i][j]=count++;
}
for (;j>sx;j--){
nums[i][j]=count++;
}
for (;i>sx;i--){
nums[i][j]=count++;
}
sx++;
sy++;
loop++;
set++;
}
if (n%2==1 ){
nums[sx][sy]=count;
}
return nums;
}
}
力扣209 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
注意:zz+=1所放置的位置
双指针
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int result=Integer.MAX_VALUE;
int sum=0;
int l=0;
int r=0;
int n=nums.length;
while (r<n){
sum+=nums[r];
while(sum>=target){
result=Math.min(result,r-l+1);
sum-=nums[l];
l+=1;
}
r+=1;
}
return result == Integer.MAX_VALUE ? 0 : result;
}
}
总结:
把动画记在脑子里
1.学到数组和二维数组的定义
2.转圈循环及变量随着迭代
3.无穷大: Integer.MAX_VALUE
4. 逗号判断句
5.滑动窗口