leetcode
leetcode
Pang_ling
这个作者很懒,什么都没留下…
展开
-
分治、递归的实现和特性
分治分支的实质就是递归一个大问题分解成多个子问题,大问题是由多个小问题组成。找重复性将每一个小写字符转换成大写代码模板类似泛型递归函数,但是分治需要将这个结果最后合并回溯回溯法不断地在每一层去尝试,Leecode 22.括号的生成Leecode 50.Pow(x,n)public double mypow(double x,int n){//分治//template:1...原创 2020-08-02 23:15:49 · 224 阅读 · 0 评论 -
递归的实现、特性以及思维要点
简单的用python来看def recursion(level,param1,param2,...) //递归终结条件 if level>MAX_LEVEL: process_result return //处理当前层 process(level,data...) //下探到下一...原创 2020-08-02 23:15:24 · 283 阅读 · 0 评论 -
Leetcode 236
题目题解# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q:原创 2020-05-08 18:32:59 · 110 阅读 · 0 评论 -
Leetcode 114二叉树的最大深度
题目解题思路C#:public class Solution { public int MaxDepth(TreeNode root) { if(root==null) {return 0;} else { int leftDepth=MaxDepth(root.l原创 2020-05-08 18:18:17 · 162 阅读 · 0 评论 -
Leetcode 89.格雷编码
题目题解代码实现:class Solution(object): def grayCode(self, n): """ :type n: int :rtype: List[int] """ res =...原创 2020-04-21 23:08:03 · 193 阅读 · 0 评论 -
Leetcode 78.子集
题目解题1.递归算法先创建一个空的集合作为输出结果,遍历输入的数组;对每个遍历的元素,输出集合前面的所有子集都添加这个元素;遍历结束,输出结果代码如下:class Solution(object): def subsets(self, nums): """ :type nums: List[int] :rtype: List[Li...原创 2020-04-21 22:38:37 · 137 阅读 · 0 评论 -
Leetcode 3.无重复字符串
题目题解class Solution(object): def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ length,j = 0,-1 for i,x in enumerate(s): ...原创 2020-04-13 23:10:59 · 101 阅读 · 0 评论 -
Leetcode 14 最长公共前缀
题目题解代码实现如下:在这里插入代码片原创 2020-04-07 23:52:36 · 122 阅读 · 0 评论 -
Leetcode 641.设计循环双端队列
题目描述示例添加链接描述原创 2020-03-30 23:49:10 · 161 阅读 · 0 评论 -
Leetcode 150.逆波兰表达式求值
题目添加链接描述原创 2020-03-24 12:39:40 · 115 阅读 · 0 评论 -
Leetcode 155.最小栈
题目添加链接描述原创 2020-03-24 11:53:55 · 131 阅读 · 0 评论 -
Leetcode 20.有效的括号
题目添加链接描述原创 2020-03-23 20:58:50 · 111 阅读 · 0 评论 -
leetcode 22.合并两个有序的链表
题目描述基本思路迭代创建一个新链表,只含有头结点head,然后使用指针对两个链表进行遍历,较小的链表元素加入到新链表的末尾,当其中一个链表为空时,另外一个链表顺序加入新链表public ListNode MergeTwoLists(ListNode l1, ListNode l2) { //创建一个新链表 var head = new ListNode(0)...原创 2020-03-16 23:10:39 · 214 阅读 · 0 评论 -
Leetcode 122.买卖股票的最佳时机
题目题解一次遍历首先需要考虑prices为空列表,则返回0基本思路:从前向后遍历列表,首先min_price=prices[0],当列表出现更低价格时候替换min_price,最大利润max_profit初始值为0,之后取值为max(max_profit,当前价格-之前最低价格)。最后返回max_profitclass Solution(object): def maxProf...原创 2020-03-02 08:52:30 · 197 阅读 · 0 评论 -
Leetcode 88.合并两个有序数组
题目解答暴力解直接将nums2替换nums1中的零,再然后将nums1使用sort()进行有序排列class Solution(object): def merge(self, nums1, m, nums2, n): """ :type nums1: List[int] :type m: int :type num...原创 2020-03-01 22:31:18 · 203 阅读 · 0 评论 -
Leetcode 53.最大子序和
题目题解使用python方法来实现最大子序和 = 当前元素自身最大值 ,或者包含当前后最大遍历数组,改变元素的数值,该元素加上max(nums[i-1],0).最后是返回数组中的最大元素来表示最大和。该元素就改变成记录该元素之前最大的最大和class Solution(object): def maxSubArray(self, nums): for i...原创 2020-03-01 21:33:18 · 158 阅读 · 0 评论 -
Leetcode 27.移除元素
题目解题使用while循环计算val在数组中出现的次数nums.count(val),当nums.count(val)>0时,移除val 则次数减1。所以使用while循环代码如下:class Solution(object): def removeElement(self, nums, val): """ :type nums: Lis...原创 2020-02-23 15:15:37 · 176 阅读 · 0 评论 -
Leetcode 26. 删除排序数组中的重复项
解法双指针因为数组已经排序,在数组中放置 i 和 j 两个指针,且i在j的左边i为慢指针j为快指针。进行判断:当nums[i]==nums[j]时,j指针向后移动一位,i不变当nums[i]!=nums[j]时,i指针向后移动一位,得到新的nums[i]=nums[j],之后j指针向后移动一位最后返回的就是i+1表示移除后数组的新长度代码实现class Solution:...原创 2020-02-23 14:37:29 · 120 阅读 · 0 评论 -
leetcode 两数之和
题目介绍解决方法暴力破解直接使用循环来进行解题用python实现class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] ...原创 2020-02-19 22:38:52 · 157 阅读 · 0 评论