- 博客(71)
- 收藏
- 关注
转载 矩阵中的路径
题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符...
2019-03-14 13:37:30
173
转载 机器人的运动范围
题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?思路:1.当前格子在矩阵中2.当前格子满足...
2019-03-13 20:07:39
153
转载 窗口滑动的最大值
题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5...
2019-03-11 17:04:43
188
转载 数据流中的中位数
题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。思路:每次加数据后都要sort(),在GetMedian中加个n = None# -*- coding:...
2019-03-11 16:06:44
186
转载 二叉搜索树的第k个节点
题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4思路:二叉搜索树的中序遍历按从小到大的顺序,树的形状不能确定,但节点大小顺序可以确定# -*- coding:utf-8 -*-clas TreeNode: def __init__(self, x): self.val = x self....
2019-03-11 11:46:20
201
转载 序列化二叉树
题目描述请实现两个函数,分别用来序列化和反序列化二叉树思路:序列化,将二叉树变成字符串并且节点的val用",“隔开,用先序,空节点用”#"反序列化,将字符串s,去掉","后还原成二叉树# -*- coding:utf-8 -*-class TreeNode: def __init__(self, x): self.val = x self.left = None self....
2019-03-11 11:06:53
78
转载 按之字形顺序打印二叉树
题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。方法一:用两个stack,,如果当前打印的节点为奇数行,则先存左子节点,再存右子节点,如果当前打印的节点为偶数行,则先存右子节点,再存左子节点。方法二:存储的时候一直从左向右存储,打印的时候根据不同的层依次打印这里用方法二# -*- ...
2019-03-05 19:52:57
161
转载 对称的二叉树
题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路:1.首先根节点及其左右子树,树为空,True。2.左孩子为空,判断右孩子是否为空。3.左孩子不为空,右孩子为空,False。4.左,右孩子均不为空,但值不同,False。5.左,右孩子均不为空,值相同,递归 左子树的左子树和右子树的右子树值相同,左子树的右子树和...
2019-03-05 11:28:44
71
转载 二叉树的下一个节点
题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:1.二叉树为空,返回空2.# 节点右孩子存在,则设置一个指针从该节点的右孩子出发,一直沿着指向左孩子的指针找到的没有左孩子的节点(不一定为叶子节点,也可以有右孩子)即为下一个节点3. # 节点不是根节点,(因为上面讨论了节点有孩子存在,这里节点...
2019-03-04 15:48:25
71
转载 删除链表中重复的节点
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5注意:last = first,表示last和first指向同一个引用,但last = first,first.next只会等于第一次last.next的值,后面las...
2019-03-03 19:36:57
68
转载 Python3 filter() 函数
描述filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。语法以下是 filter() 方法的语法:filter(function, iterable)...
2019-03-03 16:29:19
169
转载 链表(虚拟)头节点存在的意义
https://blog.csdn.net/qq_37999723/article/details/77376804
2019-03-02 21:34:27
2289
1
转载 链表中环的入口节点
题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。思路:(1)判断有没有环(2)找出环https://blog.csdn.net/snow_7/article/details/52181049https://www.cnblogs.com/snake-hand/p/3148328.html方法一:时间复杂度O(n),空间复杂度O(1),因为除了存储空间来...
2019-03-02 20:30:11
121
转载 字符流中第一个不重复的字符
题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。思路:用hash,python用dict# -*- coding:utf-8 -*-class Soluti...
2019-03-02 18:30:03
72
转载 表示数值的字符串
题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。'.‘两种情况:a>前面有有无符号的整数,flag = True,接下来最后处理,例:1.a,先判断为Trueb&
2019-03-02 15:51:42
118
转载 正则表达式笔记
#!/usr/bin/pythonimport reline = "Cats are smarter than dogs"matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)if matchObj: print "matchObj.group() : ", matchObj.group() print "ma...
2019-03-01 20:15:51
85
转载 正则表达式匹配
题目描述请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配# -*- coding:u
2019-03-01 20:02:49
98
转载 构建乘积数组
题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。思路:先求下三角的乘积(即左半部分),再乘以上三角的乘积(即右半部分)。链接:https://www.nowcoder.com/questionTerminal/94a4d381a68b47b7a8bed86...
2019-03-01 11:30:36
90
转载 数组中重复的数字
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。示例1输入复制输出复制# -*- coding:utf-8 -*-class Solution:# 这里要特...
2019-02-28 20:14:49
117
转载 python3 sum()
描述sum() 方法对系列进行求和计算。语法以下是 sum() 方法的语法:sum(iterable[, start])参数iterable – 可迭代对象,如:列表、元组、集合。start – 指定相加的参数,如果没有设置这个值,默认为0。返回值返回计算结果。实例以下展示了使用 sum 函数的实例:sum([0,1,2])3sum((2, 3, 4), ...
2019-02-28 15:39:25
643
转载 Python逻辑运算符
逻辑与andx and y 布尔"与" ,如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。a = 10, b = 20a and b 返回2012 and 2 返回2-1 and 2 返回2 因为-1 不是False注意:0 and 2 返回0 即认为0为False,但不返回False,而是返回0(a > 0) and b...
2019-02-28 15:28:42
1353
原创 把字符串转换成整数
题目描述将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0示例1输入复制+21474836471a33输出复...
2019-02-28 12:42:32
67
转载 剑指offer-[编程题]不用加减乘除做加法(python2实现及解析)
正负数判断及还原正数与边界数 按位与(&) 操作后 仍得到这个数本身:负数与边界数 按位与(&) 操作后 得到的是对应二进制数的形式值:例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1~((负数 & 0xFFFFFFFF) ^ 0xFFFFFFFF) =
2019-02-27 19:57:30
126
转载 python3的位移操作
int无限宽度,不会溢出算法中需要用到了32位int的溢出来参与运算,但是python的int是不会溢出的,达到界限后会自己转为long,所以很麻烦。#使用-342686650:ret = 123456789 << 20print(ret)得到结果129453825982464print(bin(ret))这个二进制是111010110111100110100010101...
2019-02-27 19:40:10
1708
转载 python中移位操作 问题
一、现象Python 中执行左移操作(即将一个数的二进制位整体向左移若干位,移位后在低位补零,高位溢出部分舍弃):1000<<25结果是:33554432000L而在 C#、C++等语言中执行同样的左移操作,结果却迥然不同:Console.WriteLine(1000<<25);结果是:-805306368再举几个 Python 例子:10...
2019-02-27 19:38:59
3372
原创 十进制转16,8,2进制
oct(10) # 十进制10转8进制8进制前缀0ohex(10) #十进制10转16进制16进制 前缀0xbin(10) #十进制10转二进制0b
2019-02-27 19:05:28
117
转载 1+2+...+n
题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)# -*- coding:utf-8 -*-class Solution: def Sum_Solution(self, n) ans = n # and 后面不能有=,+=等 如果要有+= 这里建个tmp 下面ans += tmp ...
2019-02-27 12:35:31
482
转载 逻辑与&&短路特点
$短路特点:前面为假,后面不计算链接:https://www.nowcoder.com/questionTerminal/7a0da8fc483247ff8800059e12d7caf1来源:牛客网解题思路:1.需利用逻辑与的短路特性实现递归终止。 2.当n==0时,(n&amp;amp;amp;amp;amp;amp;gt;0)&amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;
2019-02-27 12:00:03
411
转载 孩子们的游戏(圆圈中最后剩下的数)
题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一...
2019-02-27 11:24:52
52
转载 面试操作系统常考
最近这段时间正在积极准备面试,复习到操作系统部分,本篇文章就介绍操作系统基础内容,参考第四版《计算机操作系统》这本文章总结了面试中常考、常用到的基本知识点,希望对准备面试的同学和想回顾操作系统知识点的程序员们有所帮助,不对的地方欢迎指正!一、操作系统引论操作系统目标1:方面性,2:有效性,3:可扩展性,4:开放性操作系统基本特性1:并发、2:共享、3:虚拟、4:异步描述多道批处理、分时...
2019-02-26 19:47:30
194
原创 扑克牌顺子
题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张...
2019-02-26 17:41:33
85
转载 Bit -Map
作者:hanking链接:https://www.nowcoder.com/questionTerminal/762836f4d43d43ca9deb273b3de8e1f4来源:牛客网假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达到排序的目的。要表示8个数,我们就只需要8个Bit(1Bytes),首先我们开辟...
2019-02-26 16:35:47
122
转载 翻转单词顺序列
题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?-- coding:ut...
2019-02-26 12:59:27
60
转载 range()
list(range(0, 30, 5))[0, 5, 10, 15, 20, 25]list(range(0, 10, 2))[0, 2, 4, 6, 8]list(range(0, -10, -1)) #反向[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]list(range(1, 0)) # range(1, 0)...
2019-02-26 12:46:10
638
原创 左旋转字符串
题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!原理:YX = (XTYT)T # -*- coding:utf-8 -*- cla...
2019-02-25 12:21:35
53
原创 和为S的两个数字
题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。数列满足递增,设两个头尾两个指针i和j,若ai + aj == sum,就是答案(相差越远乘积越小)若ai + aj > sum,aj肯定不是答案之一(前面已得出 i 前面的数已是不可能),j ...
2019-02-24 21:05:24
48
原创 和为S的连续正数序列
题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描述: 输出所有和为S的连续正数序列。序...
2019-02-24 19:45:50
67
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人