刷剑指
6号大蚂蚁
这个作者很懒,什么都没留下…
展开
-
剑指题目——1、二维有序数组的查找
剑指题目——1、二维有序数组的查找用python实现#题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。有三种思路:思路一:二分查找法:把其中一维数组看作一个有序列表,利用二分查找法进行查找。代码如下:class Solution: #...原创 2019-08-31 08:58:50 · 92 阅读 · 0 评论 -
剑指——链表倒数第k个节点
题目:输入一个链表,输出该链表中倒数第k个结点。python实现:找一个空列表存链表的所有值,便于查找想要的节点。#-*- coding:utf-8 -*-#class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def F...原创 2019-09-18 13:57:15 · 81 阅读 · 0 评论 -
剑指——合并递增链表
题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:这里附上在牛客上看到的一张图,合并过程如图:python代码如下:# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.n...原创 2019-09-18 13:45:47 · 71 阅读 · 0 评论 -
剑指——调整整数数组顺序,使奇数在前,偶数在后
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。python代码如下:class Solution: def reOrderArray(self, array): l=len(array) list1=[] i=0 ...原创 2019-09-09 20:09:49 · 182 阅读 · 0 评论 -
剑指——数值的整数次方
题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0。考察知识点:整数型和浮点型数据的运算注意:Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致。与数学运算不同的地方是,Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数:1 + ...原创 2019-09-09 20:09:39 · 83 阅读 · 0 评论 -
剑指——返回二进制中1的个数
题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。前几天笔试的时候遇到这道题。。emmm…菜鸡的我没做对。。。分享一个巧妙的思路:一个整数减去1,再和原整数做 与运算,会把该整数最右边一个1变成0.那么一个整数的二进制有多少个1,就可以进行多少次这样的操作。class Solution: def NumberOf1(self, n): # wr...原创 2019-09-06 16:13:45 · 93 阅读 · 0 评论 -
剑指题目——矩形覆盖
题目:我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?还是斐波那契数列的问题,思路:若第一步选择竖方向填充时,则大矩形规模减小为n-1填充。若第一步选择横方向填充,则第二排也只能横方向填充,那么大矩形规模就缩减为n-2填充。即第n步填充,取决于第n-1和n-2步的填充。与青蛙跳台阶同样都是斐波那契数列的问题。代码...原创 2019-09-05 14:48:23 · 73 阅读 · 0 评论 -
剑指题目——左旋转字符串
题目:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。python实现代码如下:class Solution: def LeftRotateString(self, s,...原创 2019-09-05 13:26:07 · 45 阅读 · 0 评论 -
剑指题目——变态跳台阶
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。刷题的时候看到一位老哥的思路解释很棒,这里借用他的解释分享一下:每个台阶可以看作一块木板,让青蛙跳上去,n个台阶就有n块木板,最后一块木板是青蛙到达的位子, 必须存在,其他 (n-1) 块木板可以任意选择是否存在,则每个木板有存在和不存在两种选择,(n-1) 块木板 就有 [2...原创 2019-09-05 11:37:18 · 98 阅读 · 0 评论 -
剑指题目——跳台阶
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。思路:当成DP(动态规划)问题,它的最终解是由前面多个子问题的解积累起来的解,缩小问题的规模。若楼梯台阶=1:则只有1种跳法若楼梯台阶=2:则有2种跳法若楼梯台阶=3:由前一阶跳2级到第3阶:则剩下的是第1阶没跳,由起始跳到第1阶只有1种跳法由前一阶跳1级到第3...原创 2019-09-05 11:26:01 · 48 阅读 · 0 评论 -
剑指题目——7、斐波那契数列
题目:要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。f(n)=f(n-1)+f(n-2)递归实现:class Solution: def Fibonacci(self,n): if n==0: return 0 elif n==1 or n==2: return 1 else: f=self.Fibonacci(n-1)+self....原创 2019-09-04 17:25:50 · 100 阅读 · 0 评论 -
剑指题目——返回旋转数组的最小值
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:从旋转数组的第一个进行遍历,直至当前元素的数值大于后面的数值时,由旋转数组的规律可知,该当前元素后面的这个...原创 2019-09-03 19:13:47 · 59 阅读 · 0 评论 -
剑指题目——用两个栈实现队列
题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。Class Solution: def __init__(self): self.stack1=[] # 以列表设置两个栈 self.stack2=[] def push(self,node): self.stack1.append(node) def pop(self): if s...原创 2019-09-03 14:28:23 · 63 阅读 · 0 评论 -
剑指题目——4、重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:1、由前序遍历规则可知,前序序列的第一个是根节点,即 root=pre[0]。2、在中序序列中找到pre[0]根节点的位置,由此位置可分左右子树,...原创 2019-09-01 17:41:42 · 56 阅读 · 0 评论 -
剑指题目——3、从尾到头打印链表
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。用python实现,可用 insert 列表插入函数来实现对列表或链表的重新排序。反转则需先定义一个新的空列表。代码如下:class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution...原创 2019-08-31 16:05:34 · 40 阅读 · 0 评论 -
剑指题目——2、替换字符串的空格
题目:实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。用python实现,须注意一点:在python 中,字符串是不可变类型,即无法直接修改字符串的某一个字符。这里用python自带的replace替换字符函数来替换空格。代码如下:class Solution: def replace...原创 2019-08-31 10:35:34 · 57 阅读 · 0 评论 -
剑指——反转链表
题目:输入一个链表,反转链表后,输出新链表的表头。python实现:# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回ListNode def Rev...原创 2019-09-18 13:59:35 · 66 阅读 · 0 评论