摘要: 题意 给一个数组,最初访问位置0元素,下一个可访问元素为位置0和0+nums[0]之间的元素, 问是否可以遍历整个数组 解法 贪心 代码 bool canJump(vector<int>& nums) { int hi = 0; // 当前最远 int n = nums.size(); for (i 阅读全文
posted @ 2022-07-18 22:02 Figure_at_a_Window 阅读(25) 评论(0) 推荐(0)
摘要: 题意 给一个序列以及一个目标值, 使用序列中的数相加和为目标值, 求一共有多少种组合; 每个数可选取多次 解法 递归 + 回溯 + 剪枝 代码 vector<vector<int>> ans; void dfs(vector<int> res, int target, vector<int> can 阅读全文
posted @ 2022-07-11 23:16 Figure_at_a_Window 阅读(25) 评论(0) 推荐(0)
摘要: 题意 一个非降序序列, 一个target, 求target在序列中出现的首次和某次位置 解法 二分 代码 vector<int> searchRange(vector<int>& nums, int target) { int N = nums.size(); int lo = 0, hi = N; 阅读全文
posted @ 2022-07-04 21:56 Figure_at_a_Window 阅读(19) 评论(0) 推荐(0)
摘要: 题意 判断一共二叉搜索数是否合法 解法 中序遍历, 判断是否为升序序列 代码 long long pre = LLONG_MIN; bool isValidBST(TreeNode* root) { if (root == nullptr) return true; if (!isValidBST( 阅读全文
posted @ 2022-06-27 21:47 Figure_at_a_Window 阅读(22) 评论(0) 推荐(0)
摘要: 题意 给n个区间, 将重叠的区间进行合并 解法 排序 #代码 vector<vector<int>> merge(vector<vector<int>>& intervals) { int N = intervals.size(); if (N == 0) return {}; sort(inter 阅读全文
posted @ 2022-06-20 21:13 Figure_at_a_Window 阅读(19) 评论(0) 推荐(0)
摘要: 题意 给n对括号, 求所有的合法括号序列 解法 递归 递归过程中, 值传递来实现回溯 代码 vector<string> ans; void genParenthesis(string p, int L, int R) { if (L < 0 || R < 0) return; if (L == 0 阅读全文
posted @ 2022-06-12 20:55 Figure_at_a_Window 阅读(19) 评论(0) 推荐(0)
摘要: 题意 给一个有序数组, 任意将其一分为二并交换顺序; 给一个数n, 问n是否出现在数组中 解法 二分查找 有序数组不管如何交换顺序, 肯定有一个部分是有序的, 只关注数n是否出现在有序部分即可; 若不出现, 去无序部分查找, 再次关注无序中的有序部分即可 代码 int search(vector<i 阅读全文
posted @ 2022-06-06 23:40 Figure_at_a_Window 阅读(30) 评论(0) 推荐(0)
摘要: 题意 删除链表的倒数第n个节点 方法 dummy node + 遍历 代码 ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode* dummy_node = new ListNode(1, head); ListNode* tmp_ 阅读全文
posted @ 2022-05-23 22:48 Figure_at_a_Window 阅读(17) 评论(0) 推荐(0)
摘要: 题意 n条线段, 求两条线段, 使得其与X轴组成的最大矩形, 以短的线段为宽 解法 双指针 代码 int maxArea(vector<int>& height) { int N = height.size(); int lo = 0, hi = N-1; long long ans = 0; wh 阅读全文
posted @ 2022-05-02 22:18 Figure_at_a_Window 阅读(19) 评论(0) 推荐(0)
摘要: C++程序设计 课程介绍 OO中最重要的特性--继承, 由virtual function体现; 因此熟悉OO, 熟悉设计virtual function, 一定要深刻理解继承和virtual funciton, 理解其底层如何支撑其特性 C++的另一重要技术--泛型编程, 由template体现; 阅读全文
posted @ 2022-03-28 18:34 Figure_at_a_Window 阅读(34) 评论(0) 推荐(0)