leetcode
呆坐的熊
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
25. K 个一组翻转链表
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 示例: 给你这个链表:1->2->3->4->5 当 k = 2 时,应当返回: 2->1->4->3->5 当 k = 3 时,应当返回: 3->2->1->4->5 来源:力扣(LeetCode) 链接:https://leetcode-cn.com原创 2020-05-16 09:45:12 · 198 阅读 · 0 评论 -
560. 和为K的子数组
给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。 示例 1 : 输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 求的是sum(i, j)=k的个数。这个式子可以进行一些分解 分解1:sum(i, j)=sum(i, j-1)+nums[j]=k 变成 sum(i,j-1) = k-nums[j],检查这样的sum(i,j-1)是否存在 分解2:sum(i, j) = sum(0, j)-sum(0, i-原创 2020-05-15 23:13:28 · 220 阅读 · 0 评论 -
LeetCode4. 寻找两个有序数组的中位数
二分法的hard题目。 LeetCode4. 寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 难就难在时间复杂度上。如果不考虑这点,用归并排序的merge思路解决,复杂度O(m+n). # 归并的me...原创 2020-04-08 20:22:23 · 227 阅读 · 0 评论 -
二分法的边界问题详细分析
二分法中最痛苦的问题:确定边界条件。 下面从一个最简单的例子说起: LeetCode 704. 二分查找 class Solution: def search(self, nums: List[int], target: int) -> int: left, right = 0, len(nums) # 确定左右边界 while left < r...原创 2020-03-29 23:09:00 · 3960 阅读 · 4 评论 -
二叉树的几种遍历方式
前序、中序、后序、层序 前序 二叉树的前序遍历 # 递归版本 class Solution: def preorderTraversal(self, root: TreeNode) -> List[int]: res = [] if not root: return res res.append(root.val) ...原创 2020-03-26 13:55:41 · 382 阅读 · 0 评论
分享