上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 28 下一页
摘要: 如果将所有区间按照左端点进行排序,那么能够合并的区间一定是连续的 class Solution { public: int randomInRange(int start, int end) { srand(time(NULL)); return rand() % (end - start + 1) 阅读全文
posted @ 2022-08-15 16:42 YaosGHC 阅读(98) 评论(0) 推荐(0)
摘要: 回过头来做第一题 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> map; // 遍历数组元素,如果hashmap中存在可以凑成target的数就 阅读全文
posted @ 2022-08-12 15:28 YaosGHC 阅读(20) 评论(0) 推荐(0)
摘要: 参考链接 堆排序 概述 堆排序是利用 堆 这种数据结构进行排序的一种排序算法,堆排序是一种选择排序(每次选出序列中 最大 / 最小 元素) 它的最好和最坏时间复杂度都是O(n logN) 升序->大顶堆 降序->小顶堆 堆 堆是具有以下性质的完全二叉树: 因为是完全二叉树,所以可以映射为一个一维数组 阅读全文
posted @ 2022-08-11 15:34 YaosGHC 阅读(42) 评论(0) 推荐(0)
摘要: 给定一个长度为n的任意序列 可能有重复 转换为正则序列 只包含n个元素 序列中元素范围都在[1,n] 不存在重复元素 要求: 通过加一/减一操作转换 步数最小 对于一个小于1的数 只能做+操作 当前数组中1是否存在?存在就加到1, 不存在,1+1=2是否存在?存在就加到2,以此类推 对于一个大于n的 阅读全文
posted @ 2022-08-11 11:57 YaosGHC 阅读(61) 评论(0) 推荐(0)
摘要: 直达链接 与打家劫舍的区别在于,打家劫舍原题是数组,这里是二叉树 而且这里只能由根节点开始 回顾一下之前的思路,看有什么异同、是否还适用 访问任意节点,当前节点可获得最大价值为: 不要当前节点值,那么收益便是:截至上一个节点的值(上一个节点?!这里只能知道子节点不能知道父节点) 要当前值,那么获得的 阅读全文
posted @ 2022-08-08 16:17 YaosGHC 阅读(32) 评论(0) 推荐(0)
摘要: 直达链接 跟以往的回溯不太一样的是: 这里的出口条件不再是数组长度,而是数组元素和 参数数组中的元素可以被无限制重复选取 class Solution { public: void backtrack(vector<vector<int>>& ret, vector<int>& candidates 阅读全文
posted @ 2022-08-08 15:44 YaosGHC 阅读(34) 评论(0) 推荐(0)
摘要: 直达链接 之前好像也有一道括号的题,力扣-20-有效的括号,给的标签是“栈”,不过这次的标签是“动态规划”和“回溯法”了 返回所有可能结果,一看就是回溯了,但是我好像一直没完全搞明白过 class Solution { public: void backtrack(vector<string>& a 阅读全文
posted @ 2022-08-08 14:24 YaosGHC 阅读(29) 评论(0) 推荐(0)
摘要: 直达链接 想到了连续子数组的最大和 自己想 我本来想倒着推,有点像mari和shiny,但是不对 class Solution { public: int lengthOfLIS(vector<int>& nums) { int length = nums.size(); if (length < 阅读全文
posted @ 2022-08-07 16:51 YaosGHC 阅读(46) 评论(0) 推荐(0)
摘要: 直达链接 旋转数组,想到了剑指Offer-11-旋转数组的最小值 最朴素的想法肯定是,把数组恢复,但是如果这里恢复了,目标值的位置就会变化,达不到要求 如果不恢复,就没法使用二分查找,题目中要求的时间复杂度为O(log n) 评论区提醒: 将数组一分为二,因为旋转后的数组是由两个有序部分组成的,所以 阅读全文
posted @ 2022-08-05 14:49 YaosGHC 阅读(29) 评论(0) 推荐(0)
摘要: 给定一个“非递减顺序排列”,就是说包含了重复元素的递增序列 class Solution { public: int binarySearch(vector<int>& nums, int target, bool lower) { int left = 0; int right = nums.si 阅读全文
posted @ 2022-08-04 13:43 YaosGHC 阅读(30) 评论(0) 推荐(0)
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 28 下一页