Leetcode
青柠98
这个作者很懒,什么都没留下…
展开
-
查找及leetcode练习(II)
查找(II)1. 两数之和题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: n = len(nums) if n <原创 2020-08-24 23:15:35 · 137 阅读 · 0 评论 -
查找算法及leetcode练习(I)
三、查找(I)由于最近时间紧张,之后会补充每道题的思路。1.leetcode35 搜索插入位置题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。思路:二分查找class Solution: def searchInsert(self, nums: List[int], target: int) -> int: if not nums:原创 2020-08-24 22:51:52 · 235 阅读 · 0 评论 -
动态规划及leetcode练习
目录一、动态规划二、leetcode练习2.1一维dpleetcode300.最长上升子序列leetcode53.最大子序和leetcode674.最长连续递增序列leetcode198.打家劫舍leetcode213.打家劫舍II2.2 二维dpleetcode120.三角形最小路径和leetcode5.最长回文子串leetcode1143.最长公共子序列leetcode72.编辑距离一、动态规划动态规划思想:动态规划往往用于优化递归问题。例如斐波那契数列,如果运用递归的方式来求解会重复计算很多原创 2020-08-23 11:14:06 · 158 阅读 · 0 评论 -
分治算法及leetcode练习
分治算法及leetcode练习一、分治算法1.主要思想分治法是基于多项分支递归的一种很重要的算法范式。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序、归并排序)、傅立叶变换(快速傅立叶变换)。2.适用场景1) 该问题的规模缩小到一定的程度就可以容易地解决2) 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。3) 利用该原创 2020-08-18 10:57:34 · 531 阅读 · 0 评论