![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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 · 109 阅读 · 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 · 152 阅读 · 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 · 142 阅读 · 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 · 3496 阅读 · 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 · 257 阅读 · 0 评论