自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我不是什么好人

变强不变秃

  • 博客(58)
  • 收藏
  • 关注

原创 程序员代码面试指南刷题--第五章.判断数组中所有的数字是否只出现一次

题目描述给定一个个数字arr,判断数组arr中是否所有的数字都只出现过一次。输入描述:输入包括两行,第一行一个整数n,代表数组arr的长度。第二行包括n个整数,代表数组arr。输出描述:如果arr中所有数字都只出现一次,输出“YES”,否则输出“NO”。示例1输入31 2 3输出YES解法一:利用HashSetimport java.io.*;import ja...

2020-04-30 10:30:13 816

原创 程序员代码面试指南刷题--第四章.子数组异或和为0的最多划分

题目描述给定一个整型数组arr,其中可能有正有负有零。你可以随意把整个数组切成若干个不相容的子数组,求异或和为0的子数组最多可能有多少个?整数异或和定义:把数组中所有的数异或起来得到的值。输入描述:输出包括两行,第一行一个整数,代表数组长度n。第二行有n个整数,代表数组arr。输出描述:输出一个整数,表示数组切割最多的子数组的个数。示例1输入103 2 1 9 0 7 0 2 ...

2020-04-30 09:55:29 292

原创 程序员代码面试指南刷题--第五章.将整数字符串转成整数值

题目描述给定一个字符串str,如果str符合日常书写的整数形式,并且属于32位整数范围,返回str代表的整数值,否则返回0。输入描述:输出包括一行代表str(1≤length(str)≤100)(1 \leq length(str) \leq 100)(1≤length(str)≤100)。输出描述:输出一行,代表返回的值。示例1输入123输出123示例2输入0...

2020-04-29 10:25:16 293

原创 程序员代码面试指南刷题--第四章.最长公共子串

题目描述:给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1。输入描述:输入包括两行,第一行代表字符串srr1,第二行代表字符串str2。输出描述:输出包括一行,代表最长公共子串。示例1输入1AB2345CD12345EF输出2345解法一:动态规划思路: 还是难在确定如何抽象import java.io.*;imp...

2020-04-29 09:24:53 420

原创 程序员代码面试指南刷题--第五章.找到指定类型的新类型字符

题目描述新类型字符的定义如下:1.新类型字符是长度为1或者2的字符串。2. 表现形式可以仅是小写字母,例如,“e”; 也可以是大写字母+小写字母,例如,“Ab”;还可以是大写字母+大写字母,例如,“DC”。现在给定一个字符串str, str 一定是若干新类型字符 正确组合的结果。比如"eaCCBi",由新类型字符"e"、"a”、"CC"和"Bi"拼成。 再给定一个整数k,代表str中的位置...

2020-04-28 09:51:54 178

原创 程序员代码面试指南刷题--第五章.翻转字符串(2)

题目描述给一个字符类型的数组chas和一个整数size,请把大小为size的左半区整体右移到右半区,右半区整体移动到左边。输入描述:输入两行,第一行一个整数,代表size,第二行一个字符串,代表chas输出描述:输出一行字符串,代表翻转后的字符串。示例1输入3abcdefg输出defgabc解法一:偷个懒import java.io.*;import java....

2020-04-28 09:19:54 398

原创 程序员代码面试指南刷题--第四章.信封嵌套问题

题目描述给n个信封的长度和宽度。如果信封A的长和宽都小于信封B,那么信封A可以放到信封B里,请求出信封最多可以嵌套多少层。输入描述:输出包含多行,第一行包括一个整数,代表信封的个数n。接下来n行,每行两个整数li和wi​,代表信封的长度和宽度。输出描述:输出包括一行,代表信封最多嵌套多少层。示例1输入93 42 34 51 32 23 61 23 22 4输...

2020-04-28 08:58:15 670

原创 程序员代码面试指南刷题--第四章.数字字符转化为字母组合的种数

题目描述给定一个字符串str,str全部由数字字符组成,如果str中的某一个或者相邻两个字符组成的子串值在1~26之间,则这个子串可以转换为一个字母。规定‘1’转换为“A”,“2”转换为“B”…"26"转化为“Z“。请求出str有多少种不同的转换结果,由于答案可能会比较大,所以请输出对10^9+7取模后的答案。输入描述:输出一行仅有’0‘~’9‘组成的字符串,代表str (0≤length(...

2020-04-27 12:45:34 539

原创 程序员代码面试指南刷题--第四章.最长递增子序列

题目描述给定数组arr,设长度为n,输出arr的最长递增子序列。(如果有多个答案,请输出其中字典序最小的)输入描述:输出两行,第一行包括一个正整数n(n<=100000),代表数组长度。第二行包括n个整数,代表数组arr输出描述:输出一行。代表你求出的最长的递增子序列。示例1输入92 1 5 3 6 4 8 9 7输出1 3 4 8 9示例2输入51 ...

2020-04-27 11:00:39 1360

原创 程序员代码面试指南刷题--第四章.最长公共子序列

题目描述给定两个字符串str1和str2,输出连个字符串的最长公共子序列。如过最长公共子序列为空,则输出-1。输入描述:输出包括两行,第一行代表字符串str1,第二行代表str2。(1≤length(str1),length(str2)≤5000)\left( 1\leq length(str1),length(str2) \leq 5000\right)(1≤length(str1),le...

2020-04-26 11:39:50 335

原创 程序员代码面试指南刷题--第四章.打气球的最大分数

题目描述给定一个数组arr,长度为n。代表排有分数的气球。 每打爆一个气球都能获得分数,假设打爆气球的分数为X,获得分数的规则如下:1)如果被打爆气球的左边有没被打爆的气球,找到离被打爆气球最近的气球,假设分数为L:如果被打爆气球的右边有没被打爆的气球,找到离被打爆气球最近的气球,假设分数为R.获得分数为LXR2)如果被打爆的气球的左边有没被打爆的气球,找到离被打爆气球最近的气球,假设分数为...

2020-04-26 10:35:06 455

原创 程序员代码面试指南刷题--第五章.翻转字符串(1)

题目描述给定字符类型的数组chas,请在单词间做逆序调整。只要做到单词的顺序逆序即可,对空格的位置没有要求。输入描述:输入一行只含字母和空格的字符串,代表chas.输出描述:输出一行字符串,代表逆转顺序后的字符串。示例1输入i am a student输出i ma a tneduts解法一:正常翻转import java.io.*;import java.util...

2020-04-25 11:37:06 276

原创 程序员代码面试指南刷题--第四章.换钱的方法数

题目描述给定数组arr,设数组长度为n,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim,代表要找的钱数,求换钱的方法数有多少种。由于方法的种数比较大,所以要求输出对109+710^9+7109+7进行取模后的答案。输入描述:输出包括两行,第一行包括两个整数n(0≤n≤1000)(0 \leq n \leq 1000)(0≤n≤...

2020-04-25 11:07:22 525

原创 程序员代码面试指南刷题--第四章.换钱的最少货币数

题目描述给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少货币数。输入描述:输入包括两行,第一行两个整数n(0<=n<=1000)代表数组长度和aim(0<=aim<=5000),第二行n个不重复的正整数,代表arr输出描述:输出一个整数,表示组成aim的...

2020-04-25 10:08:10 457

原创 杂记

MESI:缓存一致性协议总线嗅探机制内存屏障 lock汇编指令 1.避免重排序 2.强制修改值写入内存 3.写操作导致其他CPU缓存行失效

2020-04-25 08:40:10 113

原创 程序员代码面试指南刷题--第五章.字符串的调整I

题目描述给定一个字符串chas[],其中只含有字母字符和“”字符,现在想把所有“”全部挪到chas的左边,字母字符移到chas的右边。完成调整函数。输入描述:输入一行字符串代表chas(1≤lengthchas≤105)(1 \leq length_{chas} \leq 10^5 )(1≤lengthchas​≤105)。输出描述:输出一行,代表返回的字符串。示例1输入qw*...

2020-04-24 12:06:09 535

原创 程序员代码面试指南刷题--第四章.机器人达到指定位置方法数

题目描述假设有排成一行的N个位置,记为1~N,开始时机器人在M位置,机器人可以往左或者往右走,如果机器人在1位置,那么下一步机器人只能走到2位置,如果机器人在N位置,那么下一步机器人只能走到N-1位置。规定机器人只能走k步,最终能来到P位置的方法有多少种。由于方案数可能比较大,所以答案需要对1e9+7取模。输入描述:输出包括一行四个正整数N(2<=N<=5000)、M(1<...

2020-04-24 11:43:12 310

原创 程序员代码面试指南刷题--第四章.矩阵的最小路径和

题目描述给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。输入描述:第一行输入两个整数 n 和 m,表示矩阵的大小。接下来 n 行每行 m 个整数表示矩阵。输出描述:输出一个整数表示答案。示例1输入4 41 3 5 98 1 3 45 0 6 18 8 4 0...

2020-04-24 10:28:20 314

原创 程序员代码面试指南刷题--第四章.数组中的最长连续子序列

题目描述给定无序数组arr,返回其中最长的连续序列的长度(要求值连续,位置可以不连续,例如 3,4,5,6为连续的自然数)输入描述:输出两行,第一行包括一个整数n(1≤n≤105)( 1 \leq n \leq10^5 )(1≤n≤105),第二行包含n个整数,分别代表arri(1 \leq arr[i] \leq 10^8 )(1≤arr[i]≤108)输出描述:输出一个整数,代表最...

2020-04-23 10:49:23 375

原创 程序员代码面试指南刷题--第四章.跳跃游戏

题目描述给定数组arr,arr[i]==k代表可以从位置向右跳1~k个距离。比如,arr[2]==3,代表可以从位置2跳到位置3、位置4或位置5。如果从位置0出发,返回最少跳几次能跳到arr最后的位置上。输入描述:输出包括两行,第一行一个整数n(1≤n≤1e5)(1 \leq n \leq 1e5 )(1≤n≤1e5),代表arr数组长度,第二行n个整数代表数组arri(1 \leq arr...

2020-04-23 10:11:06 257

原创 程序员代码面试指南刷题--第三章.统计完全二叉树节点数

题目描述给定一个完全二叉树,统计节点数输出描述:输出个数要求时间复杂度小于O(n);解法一:递归public int nodeNum(TreeNode head){ if(head==null) return 0; return get(head,1,findLeftHeight(head,1));}public int get(TreeNode head,int l,int ...

2020-04-23 09:48:38 153

原创 程序员代码面试指南刷题--第三章.统计和生成所有不同的二叉树

题目描述给出一个整数 n,如果 n < 1,代表空树,否则代表中序遍历的结果为 {1, 2, 3… n}。请输出可能的二叉树结构有多少。输入描述:第一行输入一个整数 n。输出描述:输出一个整数对 1e9 + 7 取模的值表示答案。示例1输入7输出429解法一:动态规划import java.io.*;import java.util.*;public cl...

2020-04-21 12:36:51 314

原创 程序员代码面试指南刷题--第三章.通过先序和中序数组生成后序数组

题目描述给出一棵二叉树的先序和中序数组,通过这两个数组直接生成正确的后序数组。输入描述:第一行一个整数 n,表示二叉树的大小。第二行 n 个整数 a_i,表示二叉树的先序遍历数组。第三行 n 个整数 b_i,表示二叉树的中序遍历数组。输出描述:输出一行 n 个整数表示二叉树的后序遍历数组。示例1输入31 2 32 1 3输出2 3 1解法一:递归思路: 注意...

2020-04-21 11:46:17 324

原创 程序员代码面试指南刷题--第五章.字符串的统计字符串

题目描述给定一个字符串str,返回str的统计字符串。例如“aaabbbbcccd”的统计字符串为“a_3_b_4_c_3_d_1”。输入描述:输入一行字符串,代表str1≤length(str)≤1051\leq length(str)\leq 10^51≤length(str)≤105。输出描述:输出一行字符串,代表统计字符串。示例1输入offerofferzainaliii...

2020-04-20 10:49:43 649

原创 程序员代码面试指南刷题--第三章.派对的最大快乐值

题目描述整个公司的人员结构可以看作是一棵标准的多叉树。树的头节点是公司唯一的老板,除老板外,每个员工都有唯一的直接上级,叶节点是没有任何下属的基层员工,除基层员工外,每个员工都有一个或多个直接下级,另外每个员工都有一个快乐值。这个公司现在要办 party,你可以决定哪些员工来,哪些员工不来。但是要遵循如下的原则:1.如果某个员工来了,那么这个员工的所有直接下级都不能来。2.派对的整体快乐值...

2020-04-20 10:03:32 441

原创 程序员代码面试指南刷题--第三章.二叉树节点间的最大距离问题

题目描述从二叉树的节点 A 出发,可以向上或者向下走,但沿途的节点只能经过一次,当到达节点 B 时,路径上的节点数叫作 A 到 B 的距离。现在给出一棵二叉树,求整棵树上每对节点之间的最大距离。输入描述:第一行输入两个整数 n 和 root,n 表示二叉树的总节点个数,root 表示二叉树的根节点。以下 n 行每行三个整数 fa,lch,rch,表示 fa 的左儿子为 lch,右儿子为 ...

2020-04-20 09:15:44 472

原创 程序员代码面试指南刷题--第五章.判断两个字符串是否互为旋转词

题目描述如果一个字符串为str,把字符串的前面任意部分挪到后面形成的字符串交str的旋转词。比如str=“12345”,str的旋转串有“12345”、“45123”等等。给定两个字符串,判断是否为旋转词。输入描述:输出包含三行,第一个两个整数n和m(1≤n,m≤105)(1 \leq n,m \leq10^5 )(1≤n,m≤105),分别表示两个字符串的长度。第二行和第三行各输入一个字符...

2020-04-19 10:56:47 208

原创 程序员代码面试指南刷题--第三章.在二叉树中找到两个节点的最近公共祖先(进阶)

题目描述给定一棵二叉树,多次给出这棵树上的两个节点 o1 和 o2,请对于每次询问,找到 o1 和 o2 的最近公共祖先节点。输入描述:第一行输入两个整数 n 和 root,n 表示二叉树的总节点个数,root 表示二叉树的根节点。以下 n 行每行三个整数 fa,lch,rch,表示 fa 的左儿子为 lch,右儿子为 rch。(如果 lch 为 0 则表示 fa 没有左儿子,rch同理)...

2020-04-19 10:28:28 313

原创 程序员代码面试指南刷题--第三章.在二叉树中找到两个节点的最近公共祖先

题目描述给定一棵二叉树以及这棵树上的两个节点 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点。输入描述:第一行输入两个整数 n 和 root,n 表示二叉树的总节点个数,root 表示二叉树的根节点。以下 n 行每行三个整数 fa,lch,rch,表示 fa 的左儿子为 lch,右儿子为 rch。(如果 lch 为 0 则表示 fa 没有左儿子,rch同理)最后一行为节点 o...

2020-04-19 10:14:45 425

原创 程序员代码面试指南刷题--第三章.在二叉树中找到一个节点的后继节点

题目描述二叉树中一个节点的后继节点指的是,二叉树的中序遍历的序列中的下一个节点。输入描述:第一行输入两个整数 n 和 root,n 表示二叉树的总节点个数,root 表示二叉树的根节点。以下 n 行每行四个整数 fa,lch,rch,表示 fa 的左儿子为 lch,右儿子为 rch。(如果 lch 为 0 则表示 fa 没有左儿子,rch同理)最后一行输入要询问的节点 node。输出描...

2020-04-18 10:14:26 329

原创 程序员代码面试指南刷题--第三章.通过有序数组生成平衡搜索二叉树

题目:给定一个有序数组,并根据此数组生成一个平衡搜索二叉树解法一:递归思路: 每次取数组中间节点作为根节点import java.io.*;import java.util.*;public class Main{ public static void main(String[] args) throws Exception{ BufferedReader br...

2020-04-18 09:19:35 149

原创 程序员代码面试指南刷题--第三章.判断一棵二叉树是否为搜索二叉树和完全二叉树

题目描述给定一棵二叉树,已经其中没有重复值的节点,请判断该二叉树是否为搜索二叉树和完全二叉树。输入描述:第一行输入两个整数 n 和 root,n 表示二叉树的总节点个数,root 表示二叉树的根节点。以下 n 行每行三个整数 fa,lch,rch,表示 fa 的左儿子为 lch,右儿子为 rch。(如果 lch 为 0 则表示 fa 没有左儿子,rch同理)ps:节点的标号就是节点的值...

2020-04-18 09:00:32 536

原创 程序员代码面试指南刷题--第三章.根据后序数组重建搜索二叉树

题目描述给定一个有 n 个不重复整数的数组 arr,判断 arr 是否可能是节点值类型为整数的搜索二叉树后序遍历的结果。输入描述:第一行一个整数 n,表示数组的长度。第二行 n 个整数 arr_i。输出描述:如果是搜索二叉树后序遍历的结果则输出 “true”,否则输出 “false”。示例1输入31 3 23 0 0 2 0 0输出true解法一:递归**思...

2020-04-17 10:19:04 159

原创 程序员代码面试指南刷题--第三章.判断二叉树是否为平衡二叉树

题目描述平衡二叉树的性质为: 要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过 1。给定一棵二叉树,判断这棵二叉树是否为平衡二叉树。一颗树的高度指的是树的根节点到所有节点的距离中的最大值。输入描述:第一行输入两个整数 n 和 root,n 表示二叉树的总节点个数,root 表示二叉树的根节点。以下 n 行每行三个整数 fa,lch,rch,表示 fa 的左儿子为 lch,右...

2020-04-17 09:12:26 238

原创 程序员代码面试指南刷题--第三章.判断t1树中是否有与t2树拓扑结构完全相同的子树

题目描述给定彼此独立的两棵二叉树,判断 t1 树是否有与 t2 树拓扑结构完全相同的子树。设 t1 树的边集为 E1,t2 树的边集为 E2,若 E2 等于 E1 ,则表示 t1 树和t2 树的拓扑结构完全相同。输入描述:第一行输入两个整数 n 和 root,n 表示二叉树 t1 的总节点个数,root 表示二叉树 t1 的根节点。以下 n 行每行三个整数 fa,lch,rch,表示 f...

2020-04-16 11:09:06 724

原创 程序员代码面试指南刷题--第九章.KMP算法

题目描述给定两个字符串str和match,长度分别为N和M。实现一个算法,如果字符串str中含有子串match,则返回match在str中的开始位置,不含有则返回-1若出现了多次,则按照升序输出所有出现位置[要求]时间复杂度为O(n)输入描述:第一行一个字符串str第二行一个字符串match输出描述:输出若干个数,分别为match在str中出现的位置,从0开始标号。若不存在输出...

2020-04-16 10:43:58 198

原创 程序员代码面试指南刷题--第三章.判断t1树是否包含t2树全部的拓扑结构

题目描述给定彼此独立的两棵二叉树,判断 t1 树是否包含 t2 树全部的拓扑结构。设 t1 树的边集为 E1,t2 树的边集为 E2,若 E2 是 E1 的子集,则表示 t1 树包含 t2 树全部的拓扑结构。输入描述:第一行输入两个整数 n 和 root,n 表示二叉树 t1 的总节点个数,root 表示二叉树 t1 的根节点。以下 n 行每行三个整数 fa,lch,rch,表示 fa ...

2020-04-15 11:12:09 295

原创 程序员代码面试指南刷题--第三章.找到搜索二叉树中两个错误的节点

题目描述一棵二叉树原本是搜索二叉树,但是其中有两个节点调换了位置,使得这棵二叉树不再是搜索二叉树,请按升序输出这两个错误节点的值。(每个节点的值各不相同)输入描述:第一行输入两个整数 n 和 root,n 表示二叉树的总节点个数,root 表示二叉树的根节点。以下 n 行每行三个整数 fa,lch,rch,表示 fa 的左儿子为 lch,右儿子为 rch。(如果 lch 为 0 则表示 f...

2020-04-15 08:53:41 399

原创 程序员代码面试指南刷题--第三章.二叉树的按层打印与ZigZag打印

题目描述给定一颗二叉树,分别实现按层和 ZigZag 打印二叉树。ZigZag遍历: 意思是第一层从左到右遍历,第二层从右到左遍历,依次类推。输入描述:第一行输入两个整数 n 和 root,n 表示二叉树的总节点个数,root 表示二叉树的根节点。以下 n 行每行三个整数 fa,lch,rch,表示 fa 的左儿子为 lch,右儿子为 rch。(如果 lch 为 0 则表示 fa 没有左...

2020-04-14 10:37:16 239

原创 程序员代码面试指南刷题--第三章.找到二叉树中符合搜索二叉树条件的最大拓扑结构

题目描述给定一颗二叉树,已知所有节点的值都不一样, 返回其中最大的且符合搜索二叉树条件的最大拓扑结构的大小。拓扑结构是指树上的一个联通块。输入描述:第一行输入两个整数 n 和 root,n 表示二叉树的总节点个数,root 表示二叉树的根节点。以下 n 行每行三个整数 fa,lch,rch,表示 fa 的左儿子为 lch,右儿子为 rch。(如果 lch 为 0 则表示 fa 没有左儿子...

2020-04-14 09:45:29 271

空空如也

空空如也

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

TA关注的人

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