自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

奥古斯都

一万年太久 只争朝夕

  • 博客(22)
  • 收藏
  • 关注

原创 《链表》面试题22.删除链表中倒数第k个节点

前言:上一篇写到4月都结束了,马上5月份了,毫无章法的刷了大概1个月,接下来刷题准备按照模块系列去刷。每天还是会打卡每日一题,但是相应的每天刷的题需要按模块去分类总结。我最怕的就是数据结构,那么就从最简单的数据结构链表开始刷,大概刷20-30个题左右,然后换模块,一直刷下去。好了,言归正传还是要说题。思路: 拿到这个题我是这么想的,先遍历链表计算整个链表的长度,然后计算出要走的n-k路程,...

2020-04-30 22:35:44 288

原创 202.快乐数

前言: 今天是4月的最后一天了,leetcode打卡4月就断了1天, 貌似断的那天喝大酒去了。4月一个月每天2道题的坚持还是有点收获的,接下来继续努力,看看能不能坚持到明年的这个时候,此时希望自己的coding能力有一些提高把。不过今天这个题的名字就很乐——快乐数。今天你快乐吗?在家还算快乐,看书学习还不错。尤其读了几本好书还算有趣。那么言归正传了,说说这个题的解法。思路:最后一天的题目还...

2020-04-30 15:07:45 141

原创 面试题56 - I. 数组中数字出现的次数

思路:这个题真是涨知识了,不管用字典还是别的办法都不能满足这个空间复杂度。然后看了解析之后好就都没看明白,不过最终还是在解析去搞清楚可,这个题使用亦或运算。异或运算是相同为0,不同为1,0的任何数亦或等于其本身,将这个数组的所有数子进行亦或,得到的结果就是两个只出现一次数字的亦或结果。本题的第一个示例亦或结果是111.因为两个特出的数字是不同的,所以亦或的结果肯定不可能是0,二进制位数里肯定含...

2020-04-29 21:35:00 93

原创 面试题21. 调整数组顺序使奇数位于偶数前面

思路:这个题比较简单,可以用四种方法取解决这个问题。最质朴的方法就是遍历整个列表,把偶数和奇数分别放在一个新列表中然后合并起来就可以了。其次,可以调用python的内部方法:sorted(),直接调用比较简单。真对第一种情况还可以用队列去优化,定义一个队列,奇数插在队首,偶数插在队尾,这样也可以。最后一种办法是双指针法,首位两个指针,只要左指针是偶数,右指针是奇数,那么就交换两个数值,知道左右...

2020-04-29 12:10:56 196

原创 面试题18.删除链表的节点

思路:链表的删除只需要☞就行了,并不需要真正的删除。举个例子:如果要删除5这个值,只需要让4的next指向5的next。那么链表中5这个节点就删除了。一开始我有考虑比较笨的办法:就是将整个链表遍历然后存储,在删除val值;很显然这个需要增加一个列表的开销,而且先遍历,在把删除val以后的值插入到链表中,这个办法就相对比较笨一点。# Definition for singly-link...

2020-04-28 22:40:26 148

原创 17.打印1到最大的n位数

思路:其实就是10的多少次放的问题,然后for循环输出即可。class Solution: def printNumbers(self, n: int) -> List[int]: ''' 这个是我写的,写完发现不是很简洁,第二种看起来比较‘清晰’ nums = [] for i in range(1,10**...

2020-04-27 21:55:38 57

原创 面试题15.二进制中1的个数

思路:十进制转二进制,就是除2的一个运算。所以有三种写法:1、老老实实的写while循环语句;2、用python中的方法;3、移位操作。1、除2法class Solution: def hammingWeight(self, n: int) -> int: count=0 shang=0 yu=0 whil...

2020-04-26 20:32:54 173

原创 70.爬楼梯 and 面试题10-II

思路:一开始想那就排列组合呗,直接列出一个二元一次方程,但是觉得这样需要两层的for循环可能比较蠢,空间复杂度比较高,最后发现可以用递推的办法去做。class Solution: def numWays(self, n: int) -> int: a,b = 1,1 for _ in range(n): a,b = b...

2020-04-23 20:42:54 90

原创 199.二叉树的右视图

思路:右侧的节点就是每一层的最后一个元素,所以采用BFS算法,把每一次的最后一个节点加入到结果列表中即可。需要初始化一个队列,这个而且放入队列的顺序是先左在右.那么最后一个元素必定是右侧节点值。# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self...

2020-04-22 17:31:35 79

原创 面试题10-I.斐波那契数列

思路:肥波数列一般情况有两种:递归和非递归;其实这两种都比较好写,但是今天看到一个非常简洁的非递归方式,还是比较震撼,所以做此纪录。class Solution: def fib(self, n: int) -> int: a, b = 0, 1 for _ in range(n): a, b = b, a +...

2020-04-22 16:08:20 182

原创 1248.统计[优美子数组]

思路:看到这个题目想到用滑窗法,但是自己没写出来,参考官方解释和其它大佬的解释,把这个题目在捋一遍。优美子数组说的是和奇数有关,那么和偶数就关系不是很大,如果我们把奇数的下标都拿出来。然后只要遍历这个数组就可以了。加如k=3,只需要观察第一个奇数和第二个奇数,第一个奇数和上一个奇数之间的距离,第二个奇数和下一个奇数之间的距离。然后乘起来就是所有的排列组合。然后就可以计算大概有几组不同的优美子数...

2020-04-22 15:15:54 246

原创 面试题06.从尾到头打印链表

思路:1、遍历链表,定义一个列表,然后进行反转即可。2、采用递归调用。1、反转# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: ...

2020-04-21 11:37:08 363 3

原创 200.岛屿数量

思路:首先想到的BFS,广度优先遍历;所谓陆地就是看能否把1连成几个部分,这也就是岛屿的数量。那么如果用BFS进行遍历的话,尽可能把它相邻的区域和并,并且遍历过的区域设置为0,然后只要坐标值是1,那么岛屿的数量就加1,当然了,需要用到一个队列。不断的把陆地的坐标添加进去,然后遍历就可以了。其次看答案又得到DFS,深度优先遍历;这两个可谓是孪生兄弟,一般B可干的事D也可干。如果坐标值是1的话岛屿...

2020-04-20 23:22:38 223

原创 05.替换空格

思路:1、最朴素的遍历,遇到空格追加%20.之后输出;2、正则表达式sub函数;3、直接调用函数replace1、朴素class Solution: def replaceSpace(self, s: str) -> str: res = [] for c in s: if c == ' ': res.append...

2020-04-20 22:58:35 84

原创 04.二维数组中的查找

今天的每日一题比较复杂,so... give up.那就找个简单题来吧。思路:1、暴力法:直接遍历这个二维数组就可以了,简单还是简单。class Solution: def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool: length = len(ma...

2020-04-19 21:20:54 118

原创 11.乘最多水的容器(双指针)

思路:刚看到题目就在想,肯定要设一个临时变量来存储最大的面积,然后就是移动左右的指针使之面积最大。而且每次移动左右指针的话:宽=索引之差,长=垂线中的最短线段。首先将左右索引设为0,len(nums)-1;初始面积:min(left,right)*(right-left)。如果左边指针小于右边指针的话,那就向右移动;如果右边指针小于左边的索引的话,那就向左移动。class Solutio...

2020-04-18 15:34:21 207

原创 55.跳跃游戏

'''给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例2:输入: [3,2,1,0,4]输出: false解释: ...

2020-04-18 15:13:11 69

原创 56.区间合并

'''给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间...

2020-04-16 15:16:52 93

原创 Python之字符串处理

1、Split()and Split(“ ”)split() 将是按两个字符串直接的空格分割,split(" ")是按照一个空格进行分割的。>>> a = 'the sky is blue'>>> b = ' the sky is blue '>>> a.split()['the', 'sky', 'is', 'blue']...

2020-04-10 22:11:52 241

原创 Python之Queue模块

昨天在刷leetcode,用到DFS和BFS,所以对于Queue进行记录。主要实现了三类队列:先进先出、后进先出(类似于队列)、按照优先级输出队列的方法:Queue.put()、Queue.get()、Queue.empty()、Queue.full()、Queue.qsize()1、先进先出In [1]: from queue import QueueIn [2]: fro...

2020-04-09 11:11:00 206

原创 Python的打印模块———print与pprint

print和pprint都是python的打印模块,它们两个有一个唯一的区别,那就是:print——单行输出数据,不管输出的数据长度是多少 ,都是单行输出的pprint——多行输出数据pprint的优点是输出的数据可视化比较好In [1]: import pprintIn [2]: data = ( ...: "this is a string", [1, ...

2020-04-02 21:55:54 837 1

原创 Copy于Deepcopy的区别

一维列表:In [15]: ex = [1,2,3]In [16]: a = copy.copy(ex)In [17]: b = copy.deepcopy(ex)In [18]: a is bOut[18]: FalseIn [19]: ex[0] = 'a'In [20]: aOut[20]: [1, 2, 3]In [21]: bOut[21]: [1,...

2020-04-02 15:36:19 185

空空如也

空空如也

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

TA关注的人

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