1 | 问题描述 |
01背包
dp[j]代表j容量最多能容纳多少
状态转移方程dp[j] = max(dp[j], dp[j-vi[i]]+vi[i])
分为选和不选,取最大。
1 |
|
1 | 问题描述 |
01背包
dp[j]代表j容量最多能容纳多少
状态转移方程dp[j] = max(dp[j], dp[j-vi[i]]+vi[i])
分为选和不选,取最大。
1 | #include<iostream> |
1 | 总时间限制: 1000ms 内存限制: 65536kB |
对于冒泡排序,交换次数就是逆序对数
归并排序时,归并操作时统计左边数组中小于右边数组元素的个数。
增加一句ans+=mid-i+1;
1 | #include<iostream> |
1 | 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 |
维护一个count数组存储每一个字符在当前字符串中出现的次数和left,right两个指针,代表当前字符串的起始位置。maxlen存储最大长度,right指针不断右移直到有字符出现2次,此时不断右移left指针直到数组中没有字符出现次数大于1,更新maxlen值,重复此操作。
1 | class Solution { |
1 | 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 |
建新链表存储两个链表节点的和,处理一下进位就好了,一位数组,进位只能为0或1
1 | /** |
1 | 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 |
t = target - nums[i] ,哈希存储了nums[i]对应的下标
1 | class Solution { |