
python基础
poppy_MCT
开开心心搞技术
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指offer面试题【56】----数组中数字出现的次数
题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。代码实现# -*- coding:utf-8 -*-class Solution: # 返回[a,b] 其中ab是出现一次的两个数字 def FindNumsAppearOnce(self, array): # write code here ...原创 2019-05-29 10:03:44 · 218 阅读 · 0 评论 -
剑指offer面试题【32】----从上到下打印二叉树【队列】【举例让抽象问题具体化】【Python】
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路从上到下打印二叉树的规律:每次打印一个节点后,如果该节点有子结点,则把该节点的子节点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的节点,重复前面的打印操作,知直到队列的所有节点都被打印出来。代码实现class TreeNode: def __init__(self, x): ...原创 2019-05-09 12:51:56 · 190 阅读 · 0 评论 -
剑指offer面试题【31】----栈的压入、弹出序列【Python】【栈】【举例让问题具体化】
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)代码实现# -*- coding:utf-8 -*-class Solut...原创 2019-05-09 11:14:26 · 163 阅读 · 0 评论 -
M×N的矩阵,从左上角走,只能向右或者向下走,要求走过的每个元素的值加起来的和最大,步数不限
题目描述M×N的矩阵,从左上角走,只能向右或者向下走,要求走过的每个元素的值加起来的和最大,步数不限代码实现import numpy as npdef max_way(a,m,n): dp=[[0]*n for i in range(m)] dp[0][0]=a[0][0] for i in range(1,m): dp[i][0]...原创 2019-05-06 16:43:47 · 4086 阅读 · 1 评论 -
剑指offer面试题【26】----树的子结构【树】【Python】【递归】
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)代码实现# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right...原创 2019-05-06 14:03:02 · 281 阅读 · 0 评论 -
按因数最多的个数排序----【创建字典】【字典按键排序】【两个列表变为字典】【输出字典的键】
题目描述按从大到小的顺序输出合数因数个数最多的序列,合数的因数1和它本身不计数。代码实现a=input()a=list(map(int,a.split()))#print(a)count_list=[]for i in a: if i==1: count=0 else: count=0 fo...原创 2019-05-13 20:54:15 · 303 阅读 · 0 评论 -
剑指offer面试题【25】----合并两个排序链表【单链表】【Python】
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。代码实现# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: ...原创 2019-05-06 11:08:01 · 152 阅读 · 0 评论 -
剑指offer面试题【30】----包含min函数的栈【Python】【栈】
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。代码实现class Solution: def __init__(self): self.stack=[] self.minstack=[] def push(self, node): # write code ...原创 2019-05-08 14:34:15 · 269 阅读 · 0 评论 -
剑指offer面试题【29】----顺时针打印矩阵【解决思路】【数组】【Python】
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.代码实现# -*- coding:utf-8 -*-class Solution: # matri...原创 2019-05-08 12:11:22 · 232 阅读 · 0 评论 -
leetcode【1021】----删除最外层的括号【Python】【栈】
题目描述有效括号字符串为空("")、"(" + A + ")"或A + B,其中A和B都是有效的括号字符串,+代表字符串的连接。例如,"","()","(())()"和"(()(()))"都是有效的括号字符串。如果有效字符串S非空,且不存在将其拆分为S = A+B的方法,我们称其为原语(primitive),其中A和B都是非空有效括号字符串。给出一...原创 2019-04-25 10:00:07 · 237 阅读 · 0 评论 -
剑指offer面试题【24】----反转链表【单链表】
题目描述输入一个链表,反转链表后,输出新链表的表头。思路为了防止链表断开,使用三个指针进行操作,分别指向当前节点、它的前一个节点、后一个节点代码实现# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = ...原创 2019-05-05 13:51:58 · 180 阅读 · 0 评论 -
剑指offer面试题【22】----链表中倒数第k个节点【鲁棒性】【链表】【列表】
题目描述输入一个链表,输出该链表中倒数第k个结点。思路遍历一遍单链表,并把节点信息存到列表中,要输出倒数第k个节点,直接输出倒数第k个列表中的节点信息,列表的倒数第k个节点list[-k]直接取出,特别方便。如果链表的长度比k小,或者k<0,则返回None。代码实现# -*- coding:utf-8 -*-# class ListNode:# def __...原创 2019-05-05 12:50:29 · 98 阅读 · 0 评论 -
剑指offer面试题【18.2】----删除链表中重复的的节点【Python】【单链表】【代码的完整性】
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5注意头结点可能与后面的节点重复,也肯能被删除 为了保证删除之后的链表是相连的,要把当前节点的前一个节点和后面的值比当前节点的值大的节点相连代码实现# ...原创 2019-04-15 12:52:49 · 268 阅读 · 0 评论 -
剑指offer面试题【18.1】----删除链表的节点【Python】【单链表】【代码的完整性】【O(1)】
题目描述在O(1)时间内删除链表节点。给定单链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点。注意代码完整性,考虑以下三种情况如果要删除的节点后面有节点,则将该节点内容复制到要删除的节点,并删除该节点。 如果要删除的节点在链表头部,直接删除该节点。 如果要删除的节点在链尾,遍历至该节点删除。代码实现class ListNode(object): ...原创 2019-04-15 10:10:18 · 492 阅读 · 1 评论 -
leetcode【62】----不同路径【Python】【动态规划】
题目描述一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?代码实现动态规划解法自顶向下先用递归思考:函数可以抽象为走到终点(m-1,n-1)的全部走法。而递归为子问题,分别为(m-2, n-1)与(m-1, n-...原创 2019-04-17 15:32:22 · 732 阅读 · 0 评论 -
剑指offer面试题【20】----表示数值的字符串【Python】【异常】
题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。代码实现# -*- coding:utf-8 -*-class Solution: # s字符串 def isN...原创 2019-04-16 16:16:23 · 442 阅读 · 0 评论 -
招商银行机器学习算法笔试编程题----坐板凳
题目描述有n个板凳,已知有个人坐在第i根板凳上。现在又来了m个人,选择其中的一个板凳坐下。假设所有人坐下以后,所有板凳坐了若干个人,其中人数最多的为k。计算出最小可能的k和最大可能的k。(整个过程中,无人离开)输入描述第一行一个整数n,表示板凳的个数第二行一个整数m,表示来的人数接下来n行,每行一个整数,表示第i根板凳上坐的人数满足1<=n<100,1<=...原创 2019-04-09 22:10:28 · 1264 阅读 · 0 评论 -
剑指offer面试题【38】----字符串的排列
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。# -*- coding:utf-8 -*-import itertoolsclass Solution: ...原创 2019-05-14 12:43:32 · 187 阅读 · 0 评论 -
剑指offer面试题【39】----数组中出现次数超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。代码实现# -*- coding:utf-8 -*-class Solution: def MoreThanHalfNum_Solution(self, nu...原创 2019-05-14 13:36:58 · 158 阅读 · 0 评论 -
剑指offer面试题【55.2】----平衡二叉树
题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。代码实现# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution...原创 2019-05-29 09:40:22 · 312 阅读 · 0 评论 -
剑指offer面试题【55.1】----二叉树的深度【递归】【Python】
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。代码实现解法一:递归的方法# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left =...原创 2019-05-28 13:20:59 · 385 阅读 · 0 评论 -
剑指offer面试题【50】----第一个只出现一次的字符【python】【enumerate()】
题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).代码实现import sysclass Solution: def FirstNotRepeatingChar(self, s): # write code here if ...原创 2019-05-23 18:23:44 · 255 阅读 · 0 评论 -
剑指offer面试题【52】----两个链表的第一个公共节点
题目描述输入两个链表,找出它们的第一个公共结点。代码实现# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def FindFirstCommonNode(s...原创 2019-05-26 18:24:02 · 208 阅读 · 0 评论 -
剑指offer面试题【49】----丑数
题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。代码实现思路一:判断每个数是不是丑数,效果不高效class Solution: def GetUglyNumber_Solution(self, index): # w...原创 2019-05-17 13:15:51 · 189 阅读 · 0 评论 -
剑指offer面试题【34】----二叉树中和为某一值的路径【二叉树】【递归】
题目描述输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)代码实现# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self...原创 2019-05-13 11:14:34 · 116 阅读 · 0 评论 -
剑指offer面试题【45】----把数组排成最小的数【全排列】【map函数】【python】
题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。代码实现import itertoolsclass Solution: def PrintMinNumber(self, numbers): if len(numbers)==...原创 2019-05-17 10:46:01 · 236 阅读 · 0 评论 -
剑指offer面试题【43】----1~n整数中1出现的次数【count函数】
题目描述求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。1~13中包含1的数字有1、10、11、12、13因此共出现6次。代码实现# -*- coding:utf-8 -*-class Solution: def NumberOf1Between1AndN_Solution(self, n): # write code here ...原创 2019-05-16 14:38:55 · 256 阅读 · 0 评论 -
剑指offer面试题【41】----数据流中的中位数
题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。代码实现# -*- coding:utf-8 -*-class Solution: d...原创 2019-05-16 14:35:59 · 198 阅读 · 0 评论 -
剑指offer面试题【42】----连续子数组的最大和
题目描述给一个数组,返回它的最大连续子序列的和,例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。代码实现class Solution: def FindGreatestSumOfSubArray(self, array): # write code here if len(array)==...原创 2019-05-16 14:33:43 · 192 阅读 · 0 评论 -
剑指offer面试题【33】----二叉搜索树的后续遍历序列【Python】
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。代码实现# -*- coding:utf-8 -*-class Solution: def VerifySquenceOfBST(self, sequence): if len(sequence)==0: ...原创 2019-05-11 13:03:17 · 191 阅读 · 0 评论 -
剑指offer面试题【32.3】----之字形打印二叉树【反转列表】【Python】
题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。代码实现# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left ...原创 2019-05-11 11:45:03 · 183 阅读 · 0 评论 -
leetcode【62】----不同路径【Python】【遍历二叉树】
题目描述给定二叉搜索树的根结点root,返回L和R(含)之间的所有结点的值的和。二叉搜索树保证具有唯一的值。示例 1:输入:root = [10,5,15,3,7,null,18], L = 7, R = 15输出:32示例2:输入:root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10输出:23...原创 2019-05-10 17:14:32 · 196 阅读 · 0 评论 -
剑指offer面试题【32.2】----分行从上到下打印二叉树【二叉树】【队列】【Python】
题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。代码实现# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass...原创 2019-05-10 16:26:14 · 249 阅读 · 0 评论 -
剑指offer面试题【40】----最小的k个数【排序】【Python】
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。代码实现# -*- coding:utf-8 -*-class Solution: def GetLeastNumbers_Solution(self, tinput, k): # write code here ...原创 2019-05-15 10:45:29 · 267 阅读 · 0 评论 -
剑指offer面试题【27】----二叉树的镜像【二叉树】【递归】【画图让抽象问题形象化】【Python】
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5...原创 2019-05-07 10:42:00 · 146 阅读 · 0 评论 -
剑指offer面试题【14】----剪绳子【Python】【动态规划】【贪婪算法】
题目描述给你一根长度为n的绳子,请把绳子剪成m段 (m和n都是整数,n>1并且m>1)每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]*k[1]*...*k[m]可能的最大乘积是多少?例如,当绳子的长度为8时,我们把它剪成长度分别为2,3,3的三段,此时得到的最大乘积是18.代码实现动态规划解法按照从下而上的顺序计算,先得到f(2),f(3),再计算...原创 2019-04-09 13:48:07 · 2090 阅读 · 2 评论 -
百度机器学习/数据挖掘/NLP笔试题----【编程题】【字符串】【切片】【字符串出现次数】
题目描述姆巴特是一名现役特种兵,他马上就要去参加特种兵大赛,特种兵大赛不仅对体能体格有很高的要求,还需要选手具备超强的智力和反应能力。为了训练姆巴特的反应能力和临场动脑能力,教练写了一长串文字A,还写了一串文字B,训练总共Q次,每次教练会告诉姆巴特两个数字l和r,姆巴特需要快速找出B在A[l...r]中出现了几次,A[l...r]表示从A的A[l]开始长度为r-l+1的子串输入第一行一...原创 2019-04-03 12:30:07 · 653 阅读 · 0 评论 -
剑指offer面试题【7】--重建二叉树【python】【递归】【二叉树】
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。代码实现# -*- coding:utf-8 -*-class TreeNode: def __init__(self, x):...原创 2019-03-16 18:06:07 · 158 阅读 · 0 评论 -
剑指offer面试题【10.1】--斐波那契数列【循环】【递归】【Python】
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39代码实现class Solution: def Fibonacci(self, n): # write code here a=0 b=1 for i in range(n): ...原创 2019-03-20 11:21:12 · 211 阅读 · 0 评论 -
剑指offer面试题【5】--替换空格【Python】【字符串】
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。Python实现# -*- coding:utf-8 -*-class Solution: # s 源字符串 def replaceSpace(self, s): # write cod...原创 2019-03-15 15:26:06 · 167 阅读 · 0 评论