自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指——反转链表

题目:输入一个链表,反转链表后,输出新链表的表头。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 71

原创 剑指——链表倒数第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 87

原创 剑指——合并递增链表

题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:这里附上在牛客上看到的一张图,合并过程如图:python代码如下:# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.n...

2019-09-18 13:45:47 76

原创 剑指——调整整数数组顺序,使奇数在前,偶数在后

题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。python代码如下:class Solution: def reOrderArray(self, array): l=len(array) list1=[] i=0 ...

2019-09-09 20:09:49 197

原创 剑指——数值的整数次方

题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0。考察知识点:整数型和浮点型数据的运算注意:Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致。与数学运算不同的地方是,Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数:1 + ...

2019-09-09 20:09:39 92

原创

锁机制通过锁机制,能够保证在多核多线程环境中,在某一个时间点上,只能有一个线程进入临界区代码,从而保证临界区中操作数据的一致性。所谓的锁,可以理解为内存中的一个整型数,拥有两种状态:空闲状态和上锁状态。加锁时,判断锁是否空闲,如果空闲,修改为上锁状态,返回成功。如果已经上锁,则返回失败。解锁时,则把锁状态修改为空闲状态。死锁的概念死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的...

2019-09-09 17:08:45 75

原创 关于C/C++的内存分配

一个由C/C++编译的程序占用的内存分为以下几个部分:内存栈区——存放局部变量名;内存堆——存放new或者malloc出来的对象;静态区——用于存放全局变量或者静态变量;常数区——存放局部变量或者全局变量的值;代码区——二进制代码。1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程...

2019-09-09 16:21:40 78

原创 剑指——返回二进制中1的个数

题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。前几天笔试的时候遇到这道题。。emmm…菜鸡的我没做对。。。分享一个巧妙的思路:一个整数减去1,再和原整数做 与运算,会把该整数最右边一个1变成0.那么一个整数的二进制有多少个1,就可以进行多少次这样的操作。class Solution: def NumberOf1(self, n): # wr...

2019-09-06 16:13:45 101

原创 剑指题目——矩形覆盖

题目:我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?还是斐波那契数列的问题,思路:若第一步选择竖方向填充时,则大矩形规模减小为n-1填充。若第一步选择横方向填充,则第二排也只能横方向填充,那么大矩形规模就缩减为n-2填充。即第n步填充,取决于第n-1和n-2步的填充。与青蛙跳台阶同样都是斐波那契数列的问题。代码...

2019-09-05 14:48:23 77

原创 剑指题目——左旋转字符串

题目:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。python实现代码如下:class Solution: def LeftRotateString(self, s,...

2019-09-05 13:26:07 49

原创 剑指题目——变态跳台阶

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。刷题的时候看到一位老哥的思路解释很棒,这里借用他的解释分享一下:每个台阶可以看作一块木板,让青蛙跳上去,n个台阶就有n块木板,最后一块木板是青蛙到达的位子, 必须存在,其他 (n-1) 块木板可以任意选择是否存在,则每个木板有存在和不存在两种选择,(n-1) 块木板 就有 [2...

2019-09-05 11:37:18 103

原创 剑指题目——跳台阶

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。思路:当成DP(动态规划)问题,它的最终解是由前面多个子问题的解积累起来的解,缩小问题的规模。若楼梯台阶=1:则只有1种跳法若楼梯台阶=2:则有2种跳法若楼梯台阶=3:由前一阶跳2级到第3阶:则剩下的是第1阶没跳,由起始跳到第1阶只有1种跳法由前一阶跳1级到第3...

2019-09-05 11:26:01 52

原创 剑指题目——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 111

原创 剑指题目——返回旋转数组的最小值

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:从旋转数组的第一个进行遍历,直至当前元素的数值大于后面的数值时,由旋转数组的规律可知,该当前元素后面的这个...

2019-09-03 19:13:47 66

原创 剑指题目——用两个栈实现队列

题目:用两个栈来实现一个队列,完成队列的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 67

原创 剑指题目——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 60

原创 算法和数据结构:python实现前中后序遍历二叉树

本文用递归的方法实现二叉树的三种顺序遍历,后面再补上迭代方法,也就是循环方法:递归方法:class TreeNode: def __init__(self,x): self.val=x self.left=None self.right=None def preOrder(root): ''' 前序''' if not root: # 等价于 if root=...

2019-09-01 16:26:28 83

原创 剑指题目——3、从尾到头打印链表

输入一个链表,按链表从尾到头的顺序返回一个ArrayList。用python实现,可用 insert 列表插入函数来实现对列表或链表的重新排序。反转则需先定义一个新的空列表。代码如下:class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution...

2019-08-31 16:05:34 43

原创 剑指题目——2、替换字符串的空格

题目:实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。用python实现,须注意一点:在python 中,字符串是不可变类型,即无法直接修改字符串的某一个字符。这里用python自带的replace替换字符函数来替换空格。代码如下:class Solution: def replace...

2019-08-31 10:35:34 63

原创 剑指题目——1、二维有序数组的查找

剑指题目——1、二维有序数组的查找用python实现#题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。有三种思路:思路一:二分查找法:把其中一维数组看作一个有序列表,利用二分查找法进行查找。代码如下:class Solution: #...

2019-08-31 08:58:50 99

空空如也

空空如也

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

TA关注的人

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