![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
leetcode专题讲解
概率问题
毕业于RUC,软件工程小硕一枚~
爱好:深度学习、CV、数据挖掘、NLP、Java、C++、大数据开发
展开
-
leetcode 31 下一个排列答案和解析
题目描述:实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。 1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1,5,1 一. 直观答案解答: 最简单直观的思路是暴力破解,即先将nums升序排序,然后进行排列组合,再找到nums提供的组合,下一个排列即为答案,但效率太低。 时间复杂原创 2020-11-02 16:22:07 · 223 阅读 · 2 评论 -
leetcode 4 寻找两个正序数组的中位数 Median of Two Sorted Arrays
描述: 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。 请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 解答: 核心思想是利用二分法 class Solution: def getKth(self,nums1,nums2,k): if len(nums1) == 0: return nums2[k] elif le原创 2020-06-20 09:27:13 · 136 阅读 · 0 评论 -
leetcode 2 两数相加(Add Two Numbers)
描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 class Solution: def addTwoNum原创 2020-06-19 11:37:43 · 181 阅读 · 0 评论 -
leetcode 1.两数之和(two sum)
题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 解答:暴力法费时费力,利用字典结构,以空间换时间,时间复杂度为O(n),空间复杂度为O(n) class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: d = {}原创 2020-06-17 23:23:19 · 159 阅读 · 0 评论