
LeetCode
苏书QAQ
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,本人不对所涉及的版权问题或内容负法律责任。如有侵权,请举报或通知本人删除。
展开
-
LeetCode 92 反转链表2
代码: class Solution { public: ListNode* reverseBetween(ListNode* head, int left, int right) { auto dummy = new ListNode(-1); dummy -> next = head; auto a =dummy; for(int i = 0; i < left - 1; i++ ) a = a -> next;原创 2021-05-28 12:11:46 · 146 阅读 · 0 评论 -
LeetCode 88 合并两个有序数组
代码: class Solution { public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int k= n + m - 1; int i= m - 1 , j = n -1; while(i >= 0 && j >= 0){ if(nums1[i] >=原创 2021-05-28 12:10:49 · 178 阅读 · 0 评论 -
LeetCode11 盛最多水的容器
代码: class Solution { public: int maxArea(vector<int>& height) { int res = 0; for(int i =0, j = height.size() -1 ; i < j;) { res = max(res, min(height[i] , height[j]) * (j - i)); if(height[i]原创 2021-05-28 12:10:04 · 145 阅读 · 0 评论 -
LeetCode 378. 有序矩阵中第 K 小的元素(mid)
代码: class Solution { public: int kthSmallest(vector<vector<int>>& matrix, int k) { int l= INT_MIN, r = INT_MAX; while(l < r){ int mid = (long long )l + r >> 1; int i = matrix[0].size() -原创 2021-05-28 12:06:12 · 113 阅读 · 0 评论 -
LeetCode 374. 猜数字大小(easy)
代码: class Solution { public: int guessNumber(int n) { int l = 1, r = n; while(l < r){ int mid =(long long ) l + r >> 1; if(guess(mid) <= 0) r = mid; else l = mid +1; } ret原创 2021-05-28 12:05:29 · 132 阅读 · 0 评论 -
LeetCode 69. x 的平方根(easy)
代码: class Solution { public: int mySqrt(int x) { int l = 0, r= x; while(l < r){ int mid = l + 1ll + r >> 1; if( mid <= x /mid ) l =mid; else r = mid -1; } return l; } }; ..原创 2021-05-28 12:04:34 · 99 阅读 · 0 评论 -
leetcode 62.不同路径
题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 题解: 时间复杂度(递归) O(2m+n) 每一个网格都可以由该网格左边或上边的网格转移过来,因此到达某一点的路径数等于到达它上一点的路径数与它左边的路径数之和,其实这是一个递推问题,即(m, n)的路径数等于(m, n-1)和(m-1, n)的路径之和,再考虑边界情况,就是当网原创 2021-05-17 14:03:39 · 172 阅读 · 0 评论 -
leetcode 104.二叉树的最大深度
题目: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 题解: (递归)时间复杂度 O(n) 递归求解:当前树的最大深度等于左右子树的最大深度加1。 时间复杂度分析:树中每个节点只被遍历一次,所以时间复杂度是 O(n)O(n)。 代码: class Solution { public: int maxDepth(TreeNode* root) { if(!root) return 0;原创 2021-05-15 08:24:06 · 140 阅读 · 0 评论 -
Leetcode 234. 回文链表
题目: 请判断一个链表是否为回文链表。 思路: 我们先将链表的后半段翻转,然后用两个指针分别从链表首尾开始往中间扫描,依次判断对应节点的值是否相等,如果都相等,说明是回文链表,否则不是。 空间复杂度分析:链表的迭代翻转算法仅使用额外 O(1)O(1) 的空间,所以本题也仅使用额外 O(1)O(1) 的空间。 时间复杂度分析:整个链表总共被遍历4次,所以时间复杂度是 O(n)O(n)。 代码 class Solution { public: bool isPalindrome(ListNode* h原创 2021-05-10 15:41:17 · 121 阅读 · 0 评论