上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 119 下一页
摘要: 167. 两数之和 II - 输入有序数组(中等) 思路: 有序数组求两数和等于target 使用双指针从两端夹逼的方法 class Solution { public: vector<int> twoSum(vector<int>& numbers, int target) { int left= 阅读全文
posted @ 2022-02-26 20:39 鸭子船长 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 141. 环形链表(简单) 题目: 判定链表中是否含有环 思路: 用两个指针,一个跑得快,一个跑得慢。如果不含有环,跑得快的那个指针最终会遇到 null,说明链表不含环;如果含有环,快指针最终会超慢指针一圈,和慢指针相遇,说明链表含有环。 /** * Definition for singly-li 阅读全文
posted @ 2022-02-26 20:36 鸭子船长 阅读(50) 评论(0) 推荐(0) 编辑
摘要: labuladong 48. 旋转图像(中等) 题目: 原地将二维矩阵顺时针旋转90度 思路: 先按左上至右下对角线对折,再将每一行调转 class Solution { public: void rotate(vector<vector<int>>& matrix) { int n=matrix. 阅读全文
posted @ 2022-02-26 20:00 鸭子船长 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 讲解:labuladong 370. 区间加法(中等) 题目: 思路: 进行多次区间加减。使用差分数组,diff[n]记录num[n]-num[n-1]。这样对于区间[start,end]的加减操作只反映diff[start]+=inc,diff[end+1]-=inc。注意要判断end+1<n,如 阅读全文
posted @ 2022-02-26 19:17 鸭子船长 阅读(54) 评论(0) 推荐(0) 编辑
摘要: labuladong讲解 303. 区域和检索 - 数组不可变(中等) 题目: 思路: 用前缀和记录开始到当前位置的元素和,这里前缀和数组长度n+1,presum[n+1]代表0-n的元素和 class NumArray { public: NumArray(vector<int>& nums) { 阅读全文
posted @ 2022-02-26 18:15 鸭子船长 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 239. 滑动窗口最大值(困难) 题目: 给你输入一个数组 nums 和一个正整数 k,有一个大小为 k 的窗口在 nums 上从左至右滑动,请你输出每次窗口中 k 个元素的最大值。 思路: labuladong 使用单调队列。保障队列中头部最大,尾部最小。 在尾部放入元素时,将前方小于x的都从尾部 阅读全文
posted @ 2022-02-25 14:54 鸭子船长 阅读(53) 评论(0) 推荐(0) 编辑
摘要: labuladong 496. 下一个更大元素I(简单) 题目: nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。 * * 给你两个 没有重复元素 的数组 nums1 和 nums2 ,下标从 0 开始计数,其中nums1 是 n 阅读全文
posted @ 2022-02-25 11:31 鸭子船长 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 355. 设计推特(中等) 题目: Twitter 和微博功能差不多,我们主要要实现这样几个 API: class Twitter { /** user 发表一条 tweet 动态 */ public void postTweet(int userId, int tweetId) {} /** 返回 阅读全文
posted @ 2022-02-24 20:59 鸭子船长 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 295. 数据流的中位数(困难) 题目: 思路: labuladong 用一个大根堆装较小的数,用小根堆装较大的数,维持两个堆的大小接近。 那么取中位数时: large.size==small.size,(large.top+small.top)/2.0 注意2.0为了获取double large> 阅读全文
posted @ 2022-02-24 19:18 鸭子船长 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 460. LFU 缓存机制(困难) 题目: get(key) 方法会去缓存中查询键 key,如果 key 存在,则返回 key 对应的 val,否则返回 -1。 put(key, value) 方法插入或修改缓存。如果 key 已存在,则将它对应的值改为 val;如果 key 不存在,则插入键值对  阅读全文
posted @ 2022-02-24 17:25 鸭子船长 阅读(28) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 119 下一页