数组:
- 数组是存放在连续内存空间上的相同类型数据的集合。
- 在删除或者增添元素的时候,就难免要移动其他元素的地址。速度会变慢
- 数组的元素不能删除只能覆盖
1:长度最小子数组
讲解:
不管怎么样都需要遍历一遍数组,看一下有没有一次遍历可以获取想要得到的数据—》右指针循环一次遍历将获取是值相加存储起来sum,在将长度存储起来result,内部添加循环while:左指针++,若左指针右移一位后还是大于目标值,则长度result=right-left+1(长度计算式),随之变换。
代码
package com.example.shimmer;
public class Subarray {
public int minSubArrayLen(int s, int[] nums) {
int left = 0;
int sum = 0;
int result = Integer.MAX_VALUE;
for (int right = 0; right < nums.length; right++) {
sum += nums[right];
while (sum >= s) {
result = Math.min(result, right - left + 1);
sum -= nums[left++];
}
}
return result == Integer.MAX_VALUE ? 0 : result;
}
public static void main(String[] args) {
Subarray subarray1 = new Subarray();
int[] arr = {
2,3,1,2,4,3};
System.out.println(subarray1.minSubArrayLen(7,arr));
}
}
2:螺旋矩阵
讲解
螺旋矩阵,四条边,按照每条边进行循环,需要控制好开闭区间,每一种颜色代表着一次循环,用一个值count记录每次需要放在数组里的数值,通过每次循环结束后的++,控制好下一次循环的坐标,最后判断是奇数位还是偶数位,奇数位最后需要将最后的count值存入,若有多次循环需要进行start++,start跟随循环进行增加,要是N的平方为计数,则中心位置则为【start】【start】;
代码
package</