自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 问答 (1)
  • 收藏
  • 关注

原创 入职一年后的review

随笔

2022-07-30 18:58:25 313 1

原创 Notepad++console及cmd中文乱码问题

   Notepad++突然运行程序时显示中文乱码的问题,当文件路径名中包含中文时,console下该中文路径名会显示乱码,但是代码中的中文正常显示,而cmd则刚好相反,在网上搜索了几种解法:   设置首选项中的新建为UTF-8/ANSI,将代码文件编码为UTF-8/ANSI,在NppExec中设置console output/input为UTF-8,UTF-8,但是把这几种都尝试了却还是不能正常显示。   乱码本质上来说是因为编码的不一致,楼主去查了一下cmd的默认编码是ANSI/OEM,而代码和co

2020-08-21 21:12:19 1148

原创 按位与为零的三元组

题目描述给定一个整数数组 A,找出索引为 (i, j, k) 的三元组,使得:0 <= i < A.length0 <= j < A.length0 <= k < A.lengthA[i] & A[j] & A[k] == 0,其中 & 表示按位与(AND)操作符。解题思路   暴力法看,这道题就是把先算出A[i]&A[j],然后再遍历一遍数组,计算能够和其相与结果为0的元素。其时间复杂度可以高达O(N^3)。而能够和一个数

2020-08-13 21:51:58 615

原创 跳越游戏

题目描述  给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。解题思路  这道题最初的想法就是回溯,但是每一个位置的值可能很大,回溯一定会超时。对于每一个位置i,其能够到达的最大值nums[i]+i,因此,遍历数组,更新最大位置,如果更新到某一个位置,发现这个位置大于可以到达的最大的位置,那么说明一定不可达。...

2020-03-30 11:47:46 136

原创 三数之和

题目描述  给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。解题思路  首先求两个数之和的时候,我们会先将数组排序,然后使用两个指针,i=0,j=n-1,如果两个指针指向数字的和小于要求的结果,移动右指针,否则移动左指针。  三个数的时...

2020-03-30 11:37:10 120

原创 接雨水

题目描述  给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。解题思路  从上图可以看出,位置i处能够存储的水是[0,i]的最大值和[i,n-1]的最大值中较小的那个与height[i]的差值。所以可以遍历两边数组得到位置i处的左侧和右侧的最大值,然后累加。  另一种思路,能够储水的一定的序列一定是先减再加的序列,那么利用栈进行处理,当当前...

2020-03-30 11:07:32 90

原创 盛最多雨水的容器

题目描述  给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。  说明:你不能倾斜容器,且 n 的值至少为 2。解题思路  根据题目描述,容器是由左右两条线中短的那一条和两条线的距离决定的,这个...

2020-03-30 10:22:05 181

原创 山寨金闪闪

题目描述   金闪闪死后,红A拿到了王之财宝,里面有n个武器,长度各不相同。红A发现,拿其中三件武器首尾相接,组成一个三角形,进行召唤仪式,就可以召唤出一个山寨金闪闪。(例如,三件武器长度为10、15、20,可以召唤成功。若长度为10、11、30,首尾相接无法组成三角形,召唤失败。)红A于是开了一个金闪闪专卖店。他把王之财宝排成一排,每个客人会随机抽取到一个区间[l,r],客人可以选取区间里的三...

2020-03-16 21:44:06 211

原创 剪绳子

题目描述  给你一根长度为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。解题思路  很典型的动态规划,规划方程dp[i]=max(dp[k]*dp[i-k...

2020-03-14 21:15:28 83

原创 不用加减乘除做加法

题目描述  写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。解题思路  加法在计算机中的实现本质上是通过二进制的位运算得到的,这道题就是将加法回归到位运算中。两个二进制num1,num2,num1^num2得到的是不算进位值的相加结果,(num1&num2)<<1得到的是相加的进位值,将num1,num2更新为这两个结果,直到进位为0。实现...

2020-03-13 16:37:39 74

原创 礼物

题目描述  “呼!!佳慧,我拿到面试直通卡了!”“吓死宝宝了!哦,你拿到直通卡了啊,好哒,进去吧,你可以直接接受老大的面试了”。  亮亮来到老大的办公室,“骚年,你想做什么工作啊?”“我要做大数据分析!!”  “哦~~那你先帮我们解决一个问题。是这样的,我们这次招聘会一共有N个人,我们公司给大家准备了一些礼物,但是我们并不知道这些人具体喜欢什么,现在库房共有m种礼物,每种礼物有Ci件,共N件...

2020-03-13 16:09:00 193

原创 股票交易日(动态规划)

题目描述  在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行)。给出一天中的股票变化序列,请写一个程序计算一天可以获得的最大收益。请采用实践复杂度低的方法实现。  给定价格序列prices及它的长度n,请返回最大收益。保证长度小于等于500。测试样例:[10,22,5,75,65,80],6返回:87解题...

2020-03-11 18:40:52 275

原创 优先队列

题目描述   产品经理(PM)有很多好的idea,而这些idea需要程序员实现。现在有N个PM,在某个时间会想出一个 idea,每个 idea 有提出时间、所需时间和优先等级。对于一个PM来说,最想实现的idea首先考虑优先等级高的,相同的情况下优先所需时间最小的,还相同的情况下选择最早想出的,没有 PM 会在同一时刻提出两个 idea。  同时有M个程序员,每个程序员空闲的时候就会查看每个P...

2020-03-11 16:13:47 401

原创 交换查询

题目描述  小M有一个N*M的方格,行列下标均从0开始。其中有K个方格中有数字,表示为(X, Y)方格中有数字C。对方格有2种操作,交换方格的两行或者交换方格的两列。小M希望随时能够知道在经过一系列交换之后某一方格中是否含有数字,并且如果有的话,数字是多少。输入描述输入数据第一行包含3个整数N, M, K。表示N行M列的方格,并且其中K个方格有数字。(1 <= N, M <= ...

2020-03-11 12:32:38 407

原创 最长全1串

题目描述  给你一个01字符串,定义答案=该串中最长的连续1的长度,现在你有至多K次机会,每次机会可以将串中的某个0改成1,现在问最大的可能答案。输入描述输入第一行两个整数N,K,表示字符串长度和机会次数第二行输入N个整数,表示该字符串的元素( 1 <= N <= 300000, 0 <= K <= N )解题思路  从某一个位置开始,由于K的限制,能够到达的...

2020-03-11 10:25:39 975

原创 奇数位丢弃

题目描述  对于一个由0…n的所有数按升序组成的序列,我们要进行一些筛选,每次我们取当前所有数字中从小到大的第奇数位个的数,并将其丢弃。重复这一过程直到最后剩下一个数。请求出最后剩下的数字。输入描述  每组数据一行一个数字,为题目中的n(n小于等于1000)。解题思路  这道题很简单,很一般的思路就能解开,但是这里记录下看到的一个好思路。  原始序列是0,1,2…n,第一次丢弃的0,2...

2020-03-10 17:22:34 361

原创 优美的回文串

题目描述  牛牛在书上看到一种字符串叫做回文串,当一个字符串从左到右和从右到左读都是一样的,就称这个字符串为回文串。牛牛又从好朋友羊羊那里了解到一种被称为优美的回文串的字符串,考虑一个长度为N只包含大写字母的字符串,写出它所有长度为M的连续子串(包含所有可能的起始位置的子串,相同的子串也要计入),如果这个字符串至少有K个子串都是回文串,我们就叫这个字符串为优美的回文串。现在给出一个N,牛牛希望你...

2020-03-09 21:55:13 310

原创 字符串最小变换数(编辑距离)

题目描述  给定两个字符串,已知可以使用三种方式进行变换插入一个字符删除一个字符更改一个字符请设计一个算法,找到两个字符串之间的经历几次最小变换,可以字符串1转换成字符串2。解题思路  这是一道典型的编辑距离的题目,即字符串str1至少需要多少步才能到达字符串str2。使用动态规划的方法,dp[i][j]表示字符串str的子串str1.substr(0,i)至少需要多少步到达st...

2020-03-06 21:52:44 775

原创 字母交换

题目描述  【编码题】字符串S由小写字母构成,长度为n。定义一种操作,每次都可以挑选字符串中任意的两个相邻字母进行交换。询问在至多交换m次之后,字符串中最多有多少个连续的位置上的字母相同?输入描述  第一行为一个字符串S与一个非负整数m。(1 <= |S| <= 1000, 1 <= m <= 1000000)输出描述一个非负整数,表示操作之后,连续最长的相同字母...

2020-03-06 19:30:39 831

原创 如何添加运算符

题目描述  给出一个数字N,对于数字序列 1,2,3 … N。现在在其中插入“+”, “-”, " “,使得表达式的和为M。” "的含义是把相邻的两个数字组成一个数。例如:1 + 2 3 - 4,含义是:1 + 23 - 4 = 20。给出N和M,求出所有合法的序列的个数。解题思路  这道题完全可以暴力搜索,枚举所有情况,然后对每一种情况求值,因为存在一种特殊的’ ‘运算符,可以把它看作是...

2020-03-05 16:10:07 580

原创 数列还原

题目描述  牛牛的作业薄上有一个长度为 n 的排列 A,这个排列包含了从1到n的n个数,但是因为一些原因,其中有一些位置(不超过 10 个)看不清了,但是牛牛记得这个数列顺序对的数量是 k,顺序对是指满足 i < j 且 A[i] < A[j] 的对数,请帮助牛牛计算出,符合这个要求的合法排列的数目。输入描述  每个输入包含一个测试用例。每个测试用例的第一行包含两个整数 n 和 ...

2020-03-05 12:08:08 301

原创 丑数

题目描述  把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。解题思路&esmp; 这道题对于丑数的定义是其因数中的质因数只有2,3,5的数,那么满足要求的丑数就是由两个丑数相乘得到的,否则如果其中一个不是丑数,那么最终的结果一定包含出来2,3,5之外的...

2020-03-04 21:05:35 128

原创 数字游戏

题目描述  小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数...

2020-03-04 11:44:24 201

原创 最后一位

题目描述  牛牛选择了一个正整数X,然后把它写在黑板上。然后每一天他会擦掉当前数字的最后一位,直到他擦掉所有数位。 在整个过程中,牛牛会把所有在黑板上出现过的数字记录下来,然后求出他们的总和sum.例如X = 509, 在黑板上出现过的数字依次是509, 50, 5, 他们的和就是564.  牛牛现在给出一个sum,牛牛想让你求出一个正整数X经过上述过程的结果是sum。输入描述输入包括正...

2020-03-04 10:23:39 211

原创 K点游戏

题目描述   小招喵某日闲来无事,想验一下自己的人品,于是给自己定了一个游戏规则:这个游戏有三个因素:N,K,W游戏开始的时候小招喵有0点,之后如果发现自己手上的点不足K点,就随机从1到W的整数中抽取一个(包含1和W),抽到哪个数字的概率都是相同的。重复上述过程,直到小招喵获得了K或者大于K点,就停止获取新的点,这时候小招喵手上的点小于等于N的概率是多少?输入:N = 5, K = 1,...

2020-03-03 14:55:55 396

原创 幸运子序列

题目描述  牛牛得到一个长度为n的整数序列V,牛牛定义一段连续子序列的幸运值为这段子序列中最大值和次大值的异或值(次大值是严格的次大)。牛牛现在需要求出序列V的所有连续子序列中幸运值最大是多少。请你帮帮牛牛吧。输入描述  第一行一个整数n,即序列的长度。(2<= n <= 100000)第二行n个数,依次表示这个序列每个数值V[i], (1 ≤ V[i] ≤ 10^8)且保证V...

2020-03-03 11:30:05 492

原创 最短字符编码

题目描述 给定一个非空字符串, 按照如下方式编码, 使得编码后长度最小, 返回编码后的长度: 编码规则为: k[encoding_string], 表示重复k次encoding_strng, 例如’abcdefabcdefabc’可表示为’2[abcdef]abc’, 但是’aaa’仅能编码成’aaa’, 因为len(‘3[a]’)>len(‘aaa’).补充:k为正整数, []内的...

2020-03-02 17:20:46 1360

原创 加减二叉树

题目描述   二叉树是除了叶子节点之外所有的节点都最多有两个子节点的树。满二叉树则是除叶子节点外所有节点都有两个子节点的树,且所有叶子节点到根节点的距离都相等。  现在有一棵无限大的满二叉树,根节点编号为1。编号为i的节点的左儿子编号为2i,右儿子2i+1(比如根节点1的左儿子为2,右儿子为3,2的左儿子为4,右儿子为5。)。牛牛在这棵树上做一个游戏,他从妞妞那里得到了两个数n和k,妞妞希望他...

2020-03-01 11:50:08 482

原创 编程题2--字节跳动2018校招算法方向(第一批)

题目描述   给定一个数组序列, 需要求选出一个区间, 使得该区间是所有区间中经过如下计算的值最大的一个:区间中的最小数 * 区间所有数的和最后程序输出经过计算后的最大值即可,不需要输出具体的区间。如给定序列 [6 2 1]则根据上述公式, 可得到所有可以选定各个区间的计算值:[6] = 6 * 6 = 36;[2] = 2 * 2 = 4;[1] = 1 * 1 = 1;[6,2]...

2020-02-29 19:53:52 297

原创 栈的压入、弹出顺序

题目描述  输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)。解题思路  题目中的所有数据都不相同是题眼,根据这个,可以模拟压栈,然后根据弹...

2020-02-29 13:09:45 620

原创 树的子结构

题目描述  两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解题思路  对于树结构而言,最终的是搞清楚他的递归逻辑。这道题要求判断B是A的子结构,那么就是要比较对应位置上值是否相等。也就是A中存在一个节点,该节点的值等于B的根节点值,并且左右子树和B的左右子树上的对应位置相等。  按照上面的逻辑,需要遍历A的所有节点,如果有节点满足条件,返回true,...

2020-02-27 13:41:26 81

原创 最大差值

题目描述  给定一个未排序的数列,找到此数列在已排序状态下的两个相邻值的最大差值,少于两个值时返回0。例如:给定数列 [1,3,2,0,1,6,8] 则 最大差值为3。注意:请尽量使用时间复杂度为O(n)的方案。输入描述  第一行输入单个整数N作为数列的大小,第二行输入所有数列中的元素M,共N个。0 < N <= 1000000, 0 < M < 2100000000...

2020-02-27 10:53:27 777

原创 字符串最大长度

题目描述  已知一个字符串数组words,要求寻找其中两个没有重复字符的字符串,使得这两个字符串的长度乘积最大,输出这个最大的乘积。如:words=[“abcd”,“wxyh”,“defgh”], 其中不包含重复字符的两个字符串是"abcd"和"wxyh",则输出16words=[“a”,“aa”,“aaa”,“aaaa”], 找不到满足要求的两个字符串,则输出0。解题思路  由于测试用...

2020-02-26 16:48:07 393

原创 平方根问题

问题描述  考虑定义在两正整数上的函数SSR(平方根之和的平方):SSR(A, B) = (sqrt(A) + sqrt(B))^2。牛牛对函数值为整数的情况很感兴趣。现在给定整数n和m,请帮助牛牛计算有序对(A, B)的数量, 满足1 ≤ A ≤ n, 1 ≤ B ≤ m而且SSR(A, B)是一个整数。解题思路  这道题本质上是要求sqrt(AB)是整数,也就是要求AB的乘积是完全平方数...

2020-02-26 14:12:15 300

原创 2的N次方

题目描述  对于一个整数N(512 <= N <= 1024),计算2的N次方并在屏幕显示十进制结果。输入描述输入一个整数N(512 <= N <= 1024)输出描述2的N次方的十进制结果解题思路求2的n次方实现的代码:int power2(int n){ if(n<=1) return n+1; if(n%2==0){ int hal...

2020-02-23 15:09:50 748

原创 进制转换

问题描述  将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。解题思路  将十进制数转换为二进制数的一般实现思路是:`vector<int> remains;while(n){ remains.push(n%2); n=n/2; }那么这道题的本质是大数除法。从基本除法除法开始:  可以看出每一步都是上一步的余数和当前数字构成的两位数对除数的除法,依...

2020-02-22 19:18:16 258

原创 二进制中1的个数

题目描述  输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路  对于n来说,n&(n-1)能够将n的二进制表示中最右面的1变为0,比如n的二进制表示为xxx100,n-1的二进制表示为xxx011,显然进行一个&操作之后,最右面的1已经变为0,那么有多少次操作n可以变为0,n中就含有多少个1。实现代码class Solution {public:...

2020-02-22 15:50:10 68

原创 树上最长单色路径

题目描述  对于一棵由黑白点组成的二叉树,我们需要找到其中最长的单色简单路径,其中简单路径的定义是从树上的某点开始沿树边走不重复的点到树上的另一点结束而形成的路径,而路径的长度就是经过的点的数量(包括起点和终点)。而这里我们所说的单色路径自然就是只经过一种颜色的点的路径。你需要找到这棵树上最长的单色路径。  给定一棵二叉树的根节点(树的点数小于等于300,请做到O(n)的复杂度),请返回最长单...

2020-02-22 12:12:03 531

原创 矩形覆盖

题目描述  我们可以用2x1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2x1的小矩形无重叠地覆盖一个2xn的大矩形,总共有多少种方法?比如n=3时,2x3的矩形块有3种覆盖方法:解题思路如图,设2xn的矩形有An种方法,可见An=An-1+An-2:所以本质上这道题还是关于求Fibonacci数列。实现代码class Solution {public: int r...

2020-02-21 21:00:51 124

原创 庆祝61

题目描述  牛家庄幼儿园为庆祝61儿童节举办庆祝活动,庆祝活动中有一个节目是小朋友们围成一个圆圈跳舞。牛老师挑选出n个小朋友参与跳舞节目,已知每个小朋友的身高h_i。为了让舞蹈看起来和谐,牛老师需要让跳舞的圆圈队形中相邻小朋友的身高差的最大值最小,牛老师犯了难,希望你能帮帮他。  如样例所示,当圆圈队伍按照100,98,103,105顺时针排列的时候最大身高差为5,其他排列不会得到更优的解。...

2020-02-21 18:31:30 137

空空如也

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

TA关注的人

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