Skip to content

Commit 2fa2026

Browse files
committed
modify code
1 parent 1e48889 commit 2fa2026

1 file changed

Lines changed: 70 additions & 0 deletions

File tree

课堂内容汇总/每周有营养的大厂算法面试题(正在直播)

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3084,6 +3084,76 @@ m、n都是整数,n > 1并且m > 1
30843084

30853085

30863086

3087+
第060节 2023年3月第1周流行算法题目解析
3088+
3089+
来自学员问题
3090+
给定一个1~N的排列,每次将相邻两数相加,可以得到新的序列,长度是N-1
3091+
再对新的序列,每次将相邻两数相加,可以得到新的序列,长度是N-2
3092+
这样下去可以最终只剩一个数字
3093+
比如 :
3094+
3 1 2 4
3095+
4 3 6
3096+
7 9
3097+
16
3098+
现在如果知道N,和最后的数字sum,反推最原始的序列是什么
3099+
如果有多个答案,返回字典序最小的那个
3100+
字典序看做所有数字拼起来的字符串字典序
3101+
比如
3102+
1, 10, 2... 拼起来是 1102...
3103+
1, 2, 3, 4... 拼起来是 1234...
3104+
认为 1, 10, 2...的字典序更小
3105+
如果给定的n和sum,有答案,返回一个N长度的答案数组
3106+
如果给定的n和sum,无答案,返回一个1长度的数组{ -1 }
3107+
输入 : N = 4, sum = 16
3108+
输出 : 3 1 2 4
3109+
输入 : N = 10, sum = 4116
3110+
输出 : 1 3 5 7 10 9 8 6 4 2
3111+
0 < n <= 10, sum随意
3112+
3113+
来自学员问题,国外算法面经帖子上的题
3114+
给定一个数组A, 把它分成两个数组B和C
3115+
对于数组A每个i位置的数来说,
3116+
A[i] = B[i] + C[i]
3117+
也就是一个数字分成两份,然后各自进入B和C
3118+
要求B[i], C[i] >= 1
3119+
最终B数组要求从左到右不能降序
3120+
最终C数组要求从左到右不能升序
3121+
比如
3122+
A = { 5, 4, 5 }
3123+
可以分成
3124+
B = { 2, 2, 3 }
3125+
C = { 3, 2, 2 }
3126+
这是一种有效的划分
3127+
返回有多少种有效的划分方式
3128+
1 <= A的长度 <= 10^7
3129+
1 <= A[i] <= 10^7
3130+
最终结果可能很大,请返回对1000000007取余的结果
3131+
3132+
HH有一串由各种漂亮的贝壳组成的项链
3133+
HH相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,
3134+
思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。
3135+
有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?
3136+
这个问题很难回答... 因为项链实在是太长了
3137+
于是,他只好求助睿智的你,来解决这个问题
3138+
测试链接 : https://www.luogu.com.cn/problem/P1972
3139+
请同学们务必参考如下代码中关于输入、输出的处理
3140+
这是输入输出处理效率很高的写法
3141+
提交以下所有代码,把主类名改成Main
3142+
洛谷对java太不友好了,大量时间不是消耗在算法本身上,而是耗在了IO上
3143+
多提交几次能全通过
3144+
3145+
主席树详解
3146+
测试链接 : https://www.luogu.com.cn/problem/P3834
3147+
请同学们务必参考如下代码中关于输入、输出的处理
3148+
这是输入输出处理效率很高的写法
3149+
提交以下所有代码,把主类名改成Main,可以通过
3150+
3151+
3152+
3153+
3154+
3155+
3156+
30873157

30883158

30893159

0 commit comments

Comments
 (0)