1 问题描述219.存在重复元素II 2 解题思路利用unordered_map记录元素出现的次数,使用滑动窗口法。 3 代码 cpp class Solution { public: bool containsNearbyDuplicate(vector<int>& nums, int k) { unordered_map<int,
1 问题描述396.旋转函数 2 解题思路关键在于找到数学规律 3 代码 cpp class Solution { public: int maxRotateFunction(vector<int>& nums) { vector<int> tmp(2 * nums.size(), 0); vector<int> res(nums.size(), 0); int sum = 0; for (int i = 0; i < nums.size(); i++) { tmp[i] = nums[i]; tmp[i + nums.size()] = nums[i];
1 问题描述1796.字符串中第二大的数字 2 解题思路遍历就好了 3 代码 cpp class Solution { public: int secondHighest(string s) { int first = -1; int second = -1; for (int i = 0; i < s.size(); i++) { if (s[i] <= '9') { if (s[i] - '0' >
1 问题描述1774.最接近目标价格的甜点成本 2 解题思路 2.1 回溯法 2.2 动态规划法 3 代码 3.1 回溯法 cpp class Solution { public: // res表示存储的最接近target的成本
1 问题描述1805.字符串中不同整数的数目 2 解题思路把数字当作字符串处理,存入unordered_set(哈希表)中,注意最后一个字符是数字
1 问题描述131.分割回文串 2 解题思路利用动态规划来判断字符串是否是回文串: - if (s[i] == s[j]) dp[i][j] = dp[i + 1][j - 1]; 这里遍历的时候要注意i的遍历顺序; 最后考
1 问题描述3.无重复字符的最长子串 2 解题思路用arr[96]记录每个字符出现的次数,如果字符次数大于1,说明已经包含了重复字符,则要更新l,