随笔分类 -  剑指offer66

用python实现剑指offer66题
摘要:图的广度优先遍历(BFS):采用队列 树的层次遍历:队列 设置打印数据缓冲区:采用队列 中缀表达式转后缀表达式 图的深度优先遍历(DFS) 阅读全文
posted @ 2019-09-26 16:45 lililili—— 阅读(440) 评论(0) 推荐(0)
摘要:面试题3. 数组中重复的数字 面试题4. 二维数组中的查找 面试题5:替换空格 面试题6:从尾到头打印链表 面试题7: 重建二叉树 面试题8:二叉树的下一个节点 面试题9:用两个栈实现队列 面试题9:2个队列实现1个栈 面试题:2个有序数组变为一个有序数组 面试题10: 斐波那契数列 面试题10:青 阅读全文
posted @ 2019-09-11 14:37 lililili—— 阅读(168) 评论(0) 推荐(0)
摘要:数组是线性结构,可以直接索引,即要去第i个元素,a[i]即可。链表也是线性结构,要取第i个元素,只需用指针往后遍历i次就可。貌似链表比数组还要麻烦些,而且效率低些。 想到这些相同处中的一些细微的不同处,于是他们的真正不同处渐渐显现了:链表的效率为何比数组低些?先从两者的初始化开始。数组无需初始化,因 阅读全文
posted @ 2019-08-21 20:08 lililili—— 阅读(1392) 评论(0) 推荐(0)
摘要:## 判断一个括号字符串是否匹配正确,如果括号有多种,怎么做?如(([]))正确,[[(()错误。# 符号表 SYMBOLS = {'}': '{', ']': '[', ')': '(', '>': '<'} SYMBOLS_L, SYMBOLS_R = SYMBOLS.values(), SYMBOLS.keys() def check(s): arr = [] for c... 阅读全文
posted @ 2019-08-21 19:20 lililili—— 阅读(754) 评论(0) 推荐(0)
摘要:# -*- coding:utf-8 -*- class Solution: def Permutation(self, ss): # write code here if len(ss) == 0: return [] if len(ss) == 1: return [ss] ... 阅读全文
posted @ 2019-08-21 17:04 lililili—— 阅读(255) 评论(0) 推荐(0)
摘要:滑动窗口的最大值 def queuemax(array,k): if len(array)<k: return None reslist = [] for i in range(len(array)-k+1): temp=array[i:i+k] tempmax = max(temp) # print(tempmax) reslist.append(tempmax) return reslist 阅读全文
posted @ 2019-08-21 15:35 lililili—— 阅读(302) 评论(0) 推荐(0)
摘要:输入:“abcdefg”, 2 输出:“cdefgab” 阅读全文
posted @ 2019-08-21 14:55 lililili—— 阅读(156) 评论(0) 推荐(0)
摘要:采用:reverse() 阅读全文
posted @ 2019-08-21 14:38 lililili—— 阅读(161) 评论(0) 推荐(0)
摘要:上面列出了快排的思路,下面我们整理下: (1) 快排的思想基于归并排序,其空间复杂度为O(1) (2) 一般情况下以第一个元素作为基准pivot,设置2个指针,左右指针分别指向index=0,和index=n-1的位置; 首先right_index向左移动,没有找到right_index--,直至找 阅读全文
posted @ 2019-08-19 11:14 lililili—— 阅读(180) 评论(0) 推荐(0)
摘要:题目:给定一个数组,返回该数组所有可能的子集,包含空数组和它本身。解题思路:考虑是用迭代的思想。数组中只有一个数字时,返回空集合和数字本身,再新加一个数字时,将原先的所有子集加上新的数字,就是包含新数字的子集,保留之前不包含新数字的子集。这两个子集直接相加就是新的所有子集。一样地当数组长度不断增加, 阅读全文
posted @ 2019-08-19 10:38 lililili—— 阅读(473) 评论(0) 推荐(0)
摘要:质数也就是大于1的整数中,除了1和它本身以外不能被其他整数整除的数,也叫素数。 问题: 现给定一个任意整型参数 N(N>1),求出小于N 的质数的个数。 例如: 输入 10,输出:4(2,3,5,7); 输入:20, 输出: 8(2,3,5,7,11,13,17,19); 针对小于N的每个正整数x, 阅读全文
posted @ 2019-08-17 11:15 lililili—— 阅读(584) 评论(0) 推荐(0)
摘要:题目:给定一个整数数列,找出其中和为特定值的那两个数。 你可以假设每个输入都只会有一种答案,同样的元素不能被重用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] def tw 阅读全文
posted @ 2019-08-17 11:01 lililili—— 阅读(270) 评论(0) 推荐(0)
摘要:#############这道题的解题思路:同从32题上到下打印二叉树,34题二叉树中和为某一值的路径# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None... 阅读全文
posted @ 2019-08-16 21:53 lililili—— 阅读(180) 评论(0) 推荐(0)
摘要:# -*- coding:utf-8 -*- class Solution: def PrintMinNumber(self, numbers): # write code here """采用冒泡排序的思想""" # 将list转为字符类型 strnumbers = list(map(str,numbers)) n = len(strnumbers) if n<=1: return ''.joi 阅读全文
posted @ 2019-08-16 20:34 lililili—— 阅读(196) 评论(0) 推荐(0)
摘要:def MergeSort(array): arrayLen = len(array) # 先判断边界条件 if arrayLen<1: return [] if arrayLen == 1: return array #做map操作,也就是divide index = arrayLen//2 arrayl... 阅读全文
posted @ 2019-08-16 17:08 lililili—— 阅读(128) 评论(0) 推荐(0)
摘要:这道题的思路,和面试题39,56一致,我都牺牲了空间,也就是空间复杂度为O(n),时间复杂度为O(n) 但是显然这个思路不是最优的思路。 阅读全文
posted @ 2019-08-15 15:03 lililili—— 阅读(183) 评论(0) 推荐(0)
摘要:# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None import copy class Solution: # 返回二维列表,内部每个列表表示找... 阅读全文
posted @ 2019-08-15 12:01 lililili—— 阅读(104) 评论(0) 推荐(0)
摘要:# -*- coding:utf-8 -*- class Solution: def VerifySquenceOfBST(self, sequence): # write code here # 先判断边界 if sequence == []: return False root = sequen... 阅读全文
posted @ 2019-08-15 11:05 lililili—— 阅读(202) 评论(0) 推荐(0)
摘要:# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回从上到下每个节点值列表,例:[1,2,3] ... 阅读全文
posted @ 2019-08-14 11:46 lililili—— 阅读(177) 评论(0) 推荐(0)
摘要:这道题没有做出来 阅读全文
posted @ 2019-08-14 11:30 lililili—— 阅读(109) 评论(0) 推荐(0)