
为刷题做准备
luolan9611
这个作者很懒,什么都没留下…
展开
-
2020年3月24日360内推笔试
考试时长2个半小时,笔试题分为三个部分:1. 20道逻辑选择题(包括图形找规律、数字找规律、小学奥数)2. 40道基础选择题(包括计算机网络、C++补全代码/查看输入输出、python、机器学习)3. 2道编程(编程可以使用本地IDE,不做跳出限制)这三部分每一部分作答完毕后,必须提交才可进入下一部分,提交后不能再进行修改。第一次笔试经验不足,有很多需要注意的问题:...原创 2020-03-25 13:43:46 · 2012 阅读 · 0 评论 -
常见排序算法总结
本篇博客是《大话数据结构》第9章排序部分的学习笔记,部分图文参考国外博客。排序算法的稳定性:对于值相等的元素,排序前后的相对位置不发生改变,则称该排序算法为稳定的排序。内排序与外排序:根据在排序过程中待排序的记录是否全部被放置在内存中分为内排序和外排序。根据排序算法中借助的主要操作,可把内排序分为:插入排序、交换排序、选择排序和归并排序。根据排序算法的复杂性(非时间复杂度)可将...原创 2020-03-18 16:40:16 · 803 阅读 · 0 评论 -
28.对称的二叉树-待优化
题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路:python题解:...原创 2020-03-18 23:58:43 · 479 阅读 · 0 评论 -
27.二叉树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5...原创 2020-03-14 11:36:51 · 459 阅读 · 0 评论 -
26.树的子结构
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路:遍历树A中的节点,看与树B根节点的值是否相等,相等的话,递归比较左右子树。不相等的话,接着遍历树A。树的遍历也是使用递归的方式进行实现。需要注意的是,由于空树不是任意一个树的子结构,所以只有当两树都不为空时才进行判断B是否为A的子树。在比较相等节点的左右子树是否相等时,如果B已经为空了,...原创 2020-03-14 11:03:25 · 441 阅读 · 0 评论 -
25.合并两个排序的链表
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:...练的多了真的会有手感....这个居然一遍对了。用递归的思想,把合并两个单增链表的问题可以转换为,每次寻找两个链表中较小的那个头节点,找到之后这个头节点的下一个节点是剩余链表中较小的那个头节点。需要特别考虑的是两个链表都为空和只有一个链表为空的情况。python题解:# ...原创 2020-03-12 19:29:10 · 470 阅读 · 0 评论 -
18.删除链表中重复的结点
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5我去,一个链表能让人生不如死思路1:...原创 2020-03-12 17:54:34 · 436 阅读 · 0 评论 -
24.反转链表
题目描述输入一个链表,反转链表后,输出新链表的表头。思路:创建3个指针,分别指向前一个节点,当前节点和下一个节点,以防止反转链表的过程中出现断裂。python题解:# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.n...原创 2020-03-12 17:10:41 · 457 阅读 · 0 评论 -
23.链表中环的入口节点
题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。思路:1.首先需要判断链表中是否包含环,可以用一快一慢的两个指针,当快的指针追上慢的,说明有环;如果当快的指针到达了尾结点还没有和慢的指针相遇,那么久说明没有环。2.其次要找出环的入口节点。假设环中有n个节点,从链表的开始设快慢两个指针,让快的指针先走n步,然后两个指针以相同速度移动,当快慢指针相遇时...原创 2020-03-12 11:06:30 · 404 阅读 · 0 评论 -
22.链表中倒数第K个节点
题目描述输入一个链表,输出该链表中倒数第k个结点。思路1:如果链表的长度为n,倒数第k个节点,就是正着数的第(n-k+1)个节点。那么先遍历一遍,数一下链表的长度。然后走到正着数的那个节点就好。注意判断,如果链表长度不够k,那么就没有倒数第k个节点,返回None。如果头指针为空,那么也直接返回None。这样的思路是遍历了两遍的,能不能遍历一遍呢?可以!python题解:# -*-...原创 2020-03-11 23:22:59 · 702 阅读 · 0 评论 -
21.调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。牛客上的这道题比剑指offer多了一个条件,就是要保证奇数和奇数,偶数和偶数之间的相对位置不变。最简单的思路就是新建一个空间,扫两遍,第一遍把所有的奇数放进去,第二遍把所有的偶数放进去。python题解:...原创 2020-03-11 22:26:16 · 465 阅读 · 0 评论 -
20.表示数值的字符串--
题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。:分析:可以表示为A[.[B]][e|EC]或者.B[e|EC]。其中A为数值的整数部分,B紧跟着小数点为数值的小数部分,C紧跟着'e'...原创 2020-03-10 23:15:31 · 453 阅读 · 0 评论 -
19.正则表达式匹配
题目描述请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配:思路1:...原创 2020-03-10 17:11:03 · 463 阅读 · 0 评论 -
17.打印从1到最大的n位数(待填坑)
题目:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数999.(这道题在牛客上好像没找到,我暂时把思路放上来,之后如果看到了再做。如果做完一遍发现还是没有,那就自己在IDE里跑一遍。)思路1:循环从1开始逐个打印,终止条件为10^n-1,输入3,终止条件就是小于等于1000-1思路2:由于上述问题并没有规定n的范围,因此需要考虑大数问题...原创 2020-03-08 18:06:50 · 534 阅读 · 0 评论 -
16.数值的整数次方
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0思路1:原创 2020-03-08 17:18:30 · 435 阅读 · 0 评论 -
15.二进制中1的个数
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。补码说明:正数的补码和原码表示相同负数的补码为(正数取反后加1,或者负数的原码除符号位外取反,然后加1),如-5对应正数5(00000101)→所有位取反(11111010)→加1(11111011)0的补码还是0左移运算:m<<n意味着把m左移n位,在左移n位的时候,最左边的n位...原创 2020-02-28 21:14:16 · 451 阅读 · 0 评论 -
14.剪绳子
题目描述给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m]。请问k[0]xk[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。输入输出输入8,输出则为18思路1:动态规划思想。什么样的题可以用动...原创 2020-02-21 23:57:24 · 558 阅读 · 0 评论 -
13.机器人的运动范围
题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?思路:仍旧是回溯法,特别需要注意的是机器...原创 2020-02-21 15:55:35 · 524 阅读 · 0 评论 -
12.矩阵中的路径(待填坑)
题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能...原创 2020-02-21 15:48:36 · 402 阅读 · 0 评论 -
11.旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。注意!!!在编程的时候请把键盘设置为美式输入。因为括号是中文的,导致编译不过,这个错误真的是很难找出来,醉...原创 2020-02-20 22:57:54 · 371 阅读 · 0 评论 -
10.斐波那契数列
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39思路:别犯傻,递归时间复杂度太大,用个字典或者list存一下,从前往后算一遍就行了。python题解:# -*- coding:utf-8 -*-class Solution: def Fibonacci(self, n):#n是指第n项,而...原创 2020-02-20 12:46:49 · 531 阅读 · 1 评论 -
9.用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:实现一个队列的意思是用两个后进先出的栈完成先进先出的功能。把要进入队列的元素全部压到stack1里,要出队了应该先进的元素先出,因此把stack1中的元素逐一弹出再压进stack2里,此时stack2的顶部就是最先进入队列的元素。每次入队时压入stack1即可,出队时,只要stack2不为空,...原创 2020-02-20 11:00:06 · 436 阅读 · 0 评论 -
8.二叉树的下一个节点(待填坑)
题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:窒息了,这个题思路是对的,但是代码怎么敲也敲不对Python题解:...原创 2020-02-20 00:41:24 · 399 阅读 · 0 评论 -
7.重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。...原创 2020-02-18 14:53:16 · 460 阅读 · 0 评论 -
6.从尾到头打印链表
题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。思路1:向python的list中append(),然后返回list的逆序在此对python的list进行回顾:思路2:使用insert()在这对insert()进行回顾:python题解:# -*- coding:utf-8 -*-# class ListNode:# de...原创 2020-02-18 00:35:35 · 379 阅读 · 0 评论 -
5.替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路1:直接使用python自带的replace函数进行操作。python题解# -*- coding:utf-8 -*-class Solution: # s 源字符串 def replaceSp...原创 2020-02-17 11:42:12 · 658 阅读 · 0 评论 -
查找算法模板总结
重要查找算法的模板总结:按照复习顺序持续填坑中…二分查找:递归版本:在这里插入代码片非递归版本:原创 2020-02-16 23:46:40 · 449 阅读 · 0 评论 -
4.数组中重复的数字
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。输入示例:[2,1,3,1,4]输出示例:"true,1"可复习的知识点:各大排序算法、哈希表思路1:先进...原创 2020-02-16 15:09:53 · 448 阅读 · 0 评论 -
3.二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入示例 :5,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]输出示例 :false此题避坑: 需要对输入进行字符串提取值的处理,否则在判等时5会...原创 2020-02-16 12:05:20 · 433 阅读 · 0 评论 -
漫漫做题路终于要开始了
前言由于实习的号角已经吹响,再怎么也不能拖的做题之路必须要开始了。和数据结构、算法分开得太久,我感觉现在自己得做题能力处于幼儿园阶段,内心真的很慌张。由于真的太菜了,所以要开始稳住坐定认认真真做题,抱住各种伙伴的大腿,有不懂的多琢磨多问。希望自己能够不要掉出大部队。Fighting!!...原创 2020-02-15 16:06:56 · 410 阅读 · 0 评论 -
【数组】两数之和
题目描述:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...原创 2019-10-06 14:55:28 · 768 阅读 · 0 评论 -
1004. 成绩排名 (20)
1004. 成绩排名 (20)读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含1个测试用例,格式为 第1行:正整数n 第2行:第1个学生的姓名 学号 成绩 第3行:第2个学生的姓名 学号 成绩 ... ... ... 第n+1行:第n个学生的姓名 学号 成绩输出格式:对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第原创 2017-07-27 11:44:10 · 580 阅读 · 0 评论 -
1003. 我要通过!(20)
1003. 我要通过!(20)“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组原创 2017-07-27 11:23:41 · 512 阅读 · 0 评论 -
1002. 写出这个数 (20)
1002. 写出这个数 (20)读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu正确通过#in原创 2017-07-27 10:43:35 · 544 阅读 · 0 评论 -
1001.害死人不偿命的(3n+1)猜想
题目卡拉兹(Callatz)猜想:对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研原创 2017-07-21 11:12:13 · 814 阅读 · 0 评论