题目描述: 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 ...
分类:
其他好文 时间:
2020-05-05 10:45:49
阅读次数:
50
题目: 解答: lef和rig分别指向左右的数,比较并从最大位开始装。 1 class Solution { 2 public: 3 vector<int> sortedSquares(vector<int>& A) 4 { 5 int len = A.size(); 6 vector<int> a ...
分类:
编程语言 时间:
2020-05-04 19:50:58
阅读次数:
59
题目: 解答: 设置双指针 如果右指针 r 是奇数,指针往右走 否则与左指针 l 交换一次 移动左指针 l 1 class Solution { 2 public: 3 vector<int> sortArrayByParity(vector<int>& A) 4 { 5 int l = 0; 6 ...
分类:
编程语言 时间:
2020-05-04 19:48:57
阅读次数:
69
题目: 解答: 如果数组单调则所有相邻两值的差必须都同号。 1 class Solution { 2 public: 3 bool isMonotonic(vector<int>& A) 4 { 5 //两相邻值的差 6 int sub=0; 7 for (int i = 1; i < A.size ...
分类:
编程语言 时间:
2020-05-04 19:42:20
阅读次数:
76
题目: 解答: 1 class Solution { 2 public: 3 vector<vector<int>> transpose(vector<vector<int>>& A) 4 { 5 int ro = A.size(); 6 int co = A[0].size(); 7 8 vect ...
分类:
编程语言 时间:
2020-05-04 19:41:40
阅读次数:
66
题目: 解答: 方法一:双指针。 在找到一个偶数位是奇数的前提下,找奇数位上的偶数,找到之后在交换。 1 class Solution { 2 public: 3 vector<int> sortArrayByParityII(vector<int>& A) 4 { 5 int j = 1; 6 f ...
分类:
编程语言 时间:
2020-05-04 19:32:24
阅读次数:
70
题目: 解答: 将A的从低位(尾部数字)与K相加,同时K每次都要丢弃个位数字,然后与A的下一个数字相加(此思路参考评论区大佬做的)。 1 class Solution { 2 public: 3 vector<int> addToArrayForm(vector<int>& A, int K) 4 ...
分类:
编程语言 时间:
2020-05-04 19:08:41
阅读次数:
46
题目: 解答: 总的来说就是利用杨辉三角形后一行与前一行的关系。更新过程为:从倒数第二个元素开始往前更新 它等于原来这个位置的数 + 前一个位置的数行[i] = 行[i] + 行[i-1] 1 class Solution { 2 public: 3 vector<int> getRow(int r ...
分类:
编程语言 时间:
2020-05-04 17:33:24
阅读次数:
77
题目: 解答: 1 class Solution { 2 public: 3 int maxProfit(vector<int>& prices) 4 { 5 int profit = 0; 6 for (int i = 1; i < prices.size(); i++) 7 { 8 int tm ...
分类:
编程语言 时间:
2020-05-04 17:32:01
阅读次数:
63
题目: 解答: 1 class Solution { 2 public: 3 vector<int> twoSum(vector<int>& numbers, int target) 4 { 5 int low = 0; 6 int high = numbers.size() - 1; 7 8 wh ...
分类:
编程语言 时间:
2020-05-04 17:27:43
阅读次数:
67