自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 sortedArrayToBTS

这道题是说怎么将一个升序的list转换为高度平衡二叉树的节点dayadayup:1,反正记住二叉树的题都用递归就对了2,就是在用递归时一定要拼命找初始条件,初始结果class Solution(object): def sortedArrayToBST(self, nums): """ :type nums: List[int]

2017-06-14 18:05:33 266

原创 levelOrderBottom

好久没来了,今天刷了一道树的题,时间还是以小时记,好像用微博二哈的表情daydayup;这次的daydayup就是一定要注意对空节点的处理class Solution(object): def levelOrderBottom(self, root): """ :type root: TreeNode :rtype: List

2017-06-12 20:08:43 384

原创 maxDepth

这是一道计算二叉树深度的题daydayup:1,本来这两种思路我都有想到,但是就是不敢下手,知道看到答案2,对于树的理解还是不够深刻class Solution(object): def maxDepth(self, root): """ :type root: TreeNode :rtype: int "

2017-06-01 15:15:07 2919

原创 isSymmetric

今天正面刚的第二棵树,可是一面对树的问题,我就必须看答案和问大神day day up:1,这个就用到了堆栈的思想,将相对应的对称节点最为一对一个元素保存在list中,然后从顶部开始读取元素class Solution(object): def isSymmetric(self, root): """ :type root: TreeNode

2017-05-31 21:11:54 677

原创 isSameTree

好长一个端午,进度又掉了一点,今天弄明白了端午前遗留下来的判断两棵二叉树是否相同的问题长进:1,递归,递归必须找到最底层的解决办法,然后从最高级递归到最低级,前几句就是对叶子节点的一个处理结果2,二叉树有左右连个节点,必须都予以判断if not p and not q: return Trueelif not p or not q: return False

2017-05-31 17:21:20 561

原创 sqrtPlus

求一个数开根号后的整数值本题收货:1,利用了牛顿法,对于代码中的公式原理展示如下:代码如下:x = 10r = xwhile r*r > x: r = (r + x/r) / 2print(int(r))

2017-05-24 15:30:39 136

原创 deletDuplicateds

问题描述:删除链表中值一样的节点本题收获:1,首先判断节点是否为空2,在链表进行循环的过程中,应该以a.next作为判断条件3,当赋值情况不同时,不能简写判断语句class Solution(object): def deleteDuplicates(self, head): """ :type head: ListNode

2017-05-24 08:39:39 151

原创 climbStairs

这个是寻求以1或者2的步伐爬台阶最终有多少种方法今日长进:1,学会用递归函数,其实特别像数学中的归纳解释法,不知道是不是这个名词了,一定要记住赋初值,就是对于1或者2个台阶这种情况给予结果2,对于最终的结果要给与一个出口,就是return3,对于递归函数,一定要搞清楚递归的是当前状况的前一步的情况,不要想复杂我自己有用一个递归函数,但是最终leetcode并未通过:de

2017-05-23 20:26:05 1204

原创 addbinary

这是两个二进制字符串相加得到二进制字符串的代码今天学到了:1,如果两个字符串长度不一致,用三元判断赋值tmp_a = a[-i-1] if i len(a) else '0'2,列表翻转c = list(reversed(c))3,直接在字符串前面加入字符result = "%s%s" % (val % 2, result)或者是re

2017-05-23 17:10:47 207

原创 plusOne

问题描述:对一个以数组形式存储的数进行加1操作,然后将结果以数组返回,这是我第一次如此顺利的码出一道题,并且最后的结果打败了88%的人哦,好开心,今天是个好日子,唱起来。我突然想到我们高中时的一件事,有一天晚自习前,我同学给我讲了一个笑话,说她家老么穷了,然后她有一天穿了一件新毛衣,在和同伴玩的过程中看见了一个大冬瓜,二话没说就把衣服脱下来拽着冬瓜走,然后毛衣坏了,冬瓜拽回家了,当然是被母上大人大

2017-05-22 20:02:19 211

原创 lengthOfLastWord

输出字符串中最后一个单词的长度if not s: print(0)else: i = 1 n = 0 while i len(s) and s[-i] == ' ': i = i + 1 while i len(s) and not (s[-i] ==' '): i = i + 1 n = n + 1

2017-05-20 18:18:53 182

原创 maxSubArray

这个是求最大子列和的代码,curSum中穿着当前子列的和,num代表当前元素,maxSum代表最大子列和,这个代码是从leetcode的一个解法中copy过来的curSum = maxSum = A[0]for num in A[1:]: curSum = max(num, curSum + num) maxSum = max(maxSum, curSum)

2017-05-20 17:06:43 436

原创 countAndSayPlus

我今天根据我自己的想法运行了输出这个特定序列的代码,但是复杂度导致的运行时间让人崩溃,所以我自己根据答案中的一种实现了一下,可能跟答案是一模一样的,但是我跟着它的思路走了一遍,自己有敲了一遍。不知道到哪天我才能在写while时不陷入死循环,哎,我觉得会有想放铳子的激情n = 6s = ['1']result = '1'for i in range(n-1): tmp =

2017-05-19 15:39:19 149

原创 countAndSay

这个是一个针对特定序列的输出实现,我最后实现了,但是复杂度真的是real尴尬,再接再厉吧!def countAndSay(n): length = 0 s = [] stri = [] while n > 0: a = n % 10 s.insert(0,a) n = n //10 i = 0

2017-05-19 10:54:46 200

原创 searchInsertPlus

在我看懂了solution以后码的代码,这主要是一个二分法的实现过程1,取中间值m = (r+1)/2,然后比较target与中间数的大小,如果中间数大于target,就将r赋值为m-1,首先判断r有没有小于0,然后判断那个target是否在m-1与m之间2,如果中间数小于target,就将l赋值为m+!,首先判断l有没有超过length,然后判断target是否在m与m+1之间3,如

2017-05-10 19:29:38 149

原创 searchInsert

为了查找给定整数在整数list中的位置,官方解答了用了二分法,但是如下是我的解决方式:nums = [1,3,5,6]target = 7flag = 0for i in range(len(nums)): if target nums[i]: nums.insert(i,target) print(i) flag = 1

2017-05-10 17:09:19 195

原创 strStr

今天好像被打开了新世界的大门,这道题也很顺利,查找一个字符串中一段特定的字符串haystack = "aaa"needle = "aa"sl = len(needle)flag = 0for i in range(len(haystack)-sl + 1): k = 0 s = [] while k sl: s.append(haystack

2017-05-10 16:38:23 154

原创 removeElement

这是我刷题以来最痛快的一次,可能是上一道easy题比较相似,看无人机的论文正泄气,可以稍微调节一下(可怕,码代码居然成了调节方式)nums = [2,3,3,2]val = 2while val in nums: nums.remove(val) print(val) print(nums)print(len(nums))

2017-05-10 15:56:17 173

原创 removeDuplicates

在做这道题时,整个过程简直要爆炸,主要原因就是我忽略了题干中的几个点1,这是一个已经排序的数组2,只需要输出不重复元素的个数,但是要保证数组前length个元素为这些不重复元素nums = [1,1,2]if len(nums) 2: print(nums) print(len(nums))else: length = len(nums) ne

2017-05-09 21:13:08 2174

原创 mergeTwoList

这个是关于两个链表按顺序合并的问题,首先需要判这两个链表中是否存在空链表,定义了一个空链表l,并用a指向该空链表1,比较链表当前元素的大小,将l指向小数,并记录下小数链表的next位置2,判断哪个链表不为空,直接加到l后面class ListNode(object): def __init__(self, x): self.val = x s

2017-05-08 15:07:09 754

原创 validParentheses

这个是一个括号匹配问题,可以说刷leetcode以来这是我一次有自己设计算法,可能不尽如人意,我主要是运用了一个字典,给每一个括号一一个整数值,方便接下来的计算过程。整个代码流程就是:1,判断字符串长度是奇数还是偶数,如果奇数直接报错2,如果遇到的是前置括号就将其存入一个list,知道遇到下一个后置括号3,在遇到后置括号的时候先检查临时list是否有内容,如没有直接报错,如有就与临时l

2017-05-07 19:08:30 161

原创 longestCommonPrefix

这是leetcode中关于list中元素最长公共前缀查找算法,这其中要注意空元素的处理以及最终最长前缀的输出方式s = input()if len(s) == 0: print("no marching!")else: s = s.split(',') b = [] len_all = len(s) len_next = len(s[0])

2017-05-07 15:46:45 183

原创 romanToInteger

这个是我自己编写的将罗马数字变成阿拉伯数字的python的代码,接下来有根据答案进行更改a = input()a = list(a)length = len(a)sum = 0b = []for data in a: if data == 'M': b.append(1000) elif data == 'D': b.append(

2017-05-07 11:34:10 266

原创 palindromeNumber

这个是leetcode中判断是否为回文的python代码,我的主要想法是每一次比较首位和末尾的数字是否相同,然后丢弃两位再进行判断a = input()a = int(a)if a 0: print(False)else: b = a i = 0 while b: i = i + 1 b = b // 10 l

2017-05-07 10:27:21 144

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除