今晚7点开始,持续100分钟。
选择题(20*3`)
计算机基本试题,内存管理、网络等都有涉及,不过有一道java多选实在不懂,就瞎填。40分钟就刷过了。
编程题(2*20`)
两道题通过都是27%, 由于自己也不精通代码底层优化,就直接交卷了。
1. 讨论符合abc + acc = n 的整数个数,结果中按abc为key排序输出.
注意:题目中为了保证是三位数,a不能为0,由于是三位数,所以n必须在200到2000中。
本人都是使用贪心算法实现的,最终通过率27%。
一开始没考虑,两个整数之间的联系,只保证两个数符合上述关系,出来一堆结果🤨
贪心思路:
设 k = abc, n - k = acc(假定符合条件)
实际上按照题目中约束,102 < abc <987, acc 有相应约束。
由于两个数第一个相等,因此筛选时,首先这两个要都是三位数,然后首位数相等。
最后一位数也要相等(此时有隐藏约束 n必须是偶数)。
然后考察,abc和acc中间这位数,是否符合约束。
不过我现在想想贪心条件可以约束的更小一点,在遍历a时,可以只从n/2的首位选择两边的数字,
以1068为例,分析一下只可能选择5,具体的约束还得仔细推敲。
2. 蛇形输出斐波那契数组N*N维的。不过开始端从内部开始。
记得在 剑指offer 见过蛇形遍历的题目,就套着用了。
本着做出来的原则。分两步,
S1: 得到N对应的N*N维的一维数组vecFab;
S2: 根据题意,逆序将vecFab中的数字输入到N*N矩阵中;
S3: 在main函数按顺序输出矩阵元素。
写完想想也没有约束n的范围😑。
或许这道题可以Inplace输出(有大神告知不?),或者输出时仅仅借助一维数组,
作为代码萌新,我当时没有时间考虑了🤣
全部评论
(1) 回帖