leetcode
Become阳光+
博客更多只是自己学习的笔记,请只用于参考。
展开
-
1. 两数之和
1. 两数之和 如输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 利用哈希表 算法:将target减去数组中的num[i],如果哈希表中没有对应的哈希值,则将其存入哈希表中;否则返回。 class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer>原创 2021-10-21 18:42:15 · 74 阅读 · 0 评论 -
53. 最大子序和
最大子序和 步骤:1、定义两个变量,一个记录当前最大值(result),一个记录后续值(sum)。 2、当后续值大于当前最大值,则更换最大值。 3、核心思想是:遍历迭代相加元素,前面的和小于0时,则抛弃之前的元素 class Solution { public: int maxSubArray(vector<int> &nums) { //类似寻找最大最小值的题目,初始值一定要定义成理论上的最小最大值 int result = I转载 2021-10-14 20:19:54 · 62 阅读 · 0 评论 -
存在重复元素
217. 存在重复元素 C++ 方法1:利用vector容器 思想:先排序元素,后比较前后元素是否相等 class Solution { public: bool containsDuplicate(vector<int>& nums) { sort(nums.begin(), nums.end());//排序元素 int n = nums.size(); for (int i = 0; i < n - 1; i++) {原创 2021-10-14 14:39:01 · 55 阅读 · 0 评论