代码随想录训练营 Day 02 / 60
Posted on
Views:
今日任务
- [] 每日一题(LC-1187)
- [] LC-977 有序数组的平方
- [] LC-209 长度最小的子数组
- [] LC-59 螺旋数组II
每日一题LC-1187
LC-300
做每日一题前先做了一道LC-300, 因为LC-1187的题解说这道题可以用300的方法。
这道题DP不是最优解要n^2的时间复杂度,主要思想是DP记录以i元素结尾最长的严格递增子序列长度,这样遍历每个元素如果比之前的大就比较一下+1后和之前是不是最大的。最近很多这种题目啊,DP是检查以i为结尾的xxxx,可以整理一下
1 | class Solution { |
贪心做法,使用了O(n)的查找方式,如果用二分的话可以更加快
主要思路就是让ans数组中尽可能小
1 | class Solution { |
LC-1187 使数组严格递增
代码随想录训练营 Day 01 / 60
Posted on
Views:
今日任务:
数据理论基础
Carl哥主要介绍了一些数据的基础知识和C++中数组的一些操作。那么我来总结一下Java中数组的操作。
参考连接
首先需要注意的是在Java中数组一旦被创建长度就固定了。
数组创建
1
2
3
4int[] anArray; //声明一个数组
int[] anArray = new int[10]; //创建一个长度为10的数组
int[] arr = {1, 2, 3};
int[] arr = new int[]{1, 2, 3};深拷贝与浅拷贝
1
2
3
4
5
6
7
8
9
10
11
12
13
14int[] arr = {1, 2, 3};
int[] arr2 = arr;
arr2[0] = 4;
System.out.println(arr[0]); // 4
int[] arr = {1, 2, 3};
int[] arr2 = Arrays.copyOf(arr, arr.length);
arr2[0] = 4;
System.out.println(arr[0]); // 1
// using System.arraycopy
int[] arr = {1, 2, 3};
int[] arr2 = new int[arr.length];
System.arraycopy(arr, 0, arr2, 0, arr.length);Arrays类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16int[] arr = {1, 2, 3};
System.out.println(Arrays.toString(arr)); // [1, 2, 3]
System.out.println(Arrays.equals(arr, arr2)); // true
System.out.println(Arrays.binarySearch(arr, 2)); // 1
// fill
int[] arr = new int[10];
Arrays.fill(arr, 1);
// sort
int[] arr = {1, 2, 3};
Arrays.sort(arr);
// copyOfRange
int[] arr = {1, 2, 3};
int[] arr2 = Arrays.copyOfRange(arr, 0, 2);
System.out.println(Arrays.toString(arr2)); // [1, 2]
LC-704
第一种方法:左闭右闭区间
1 | class Solution { |
第二种方法:左闭右开区间
还是第一种比较方便好想哈哈。
1 | class Solution { |
LC-27
双向双指针
1 | class Solution { |
快慢指针
1 | class Solution { |
每日一题 LC-1043
遇到好多遍了有点难度
1 | class Solution { |
Works in HCI
Posted on
Views:
helloworld
新博客再次开张,最后还是选择了最为轻量级以及省心的hexo与github pages这套你几乎不需要任何东西的组合。