![cover](https://img-blog.csdnimg.cn/img_convert/472392457f04477da68d7677fa23247e.png)
100盏灯的问题,【绝对干货
首先是感觉自己的基础还是不够吧,大厂好像都喜欢问这些底层原理。之前的准备只涉及了Java、Android、计网、数据结构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。下一步还是要查漏补缺,进行针对性复习。最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!在这里也免费分享给大家,希望大家不要犯和我一样的错误呀!!!一
![](https://csdnimg.cn/release/devpress/public/img/ic-book.4f347164.png)
//统计开灯数
for(int i = 0; i < light.length; i++){
if(light[i] == 1){
result ++;
}
}
System.out.println(“result===” + result);
*/
/*
- 过对灯编号进行约数计数来降低复杂度,约数个数为奇数的灯最后是开着的,约数为偶数的灯是关着的
*/
for(int i = 1; i <= 100; i ++){
for(int j = 1; j < i; j++){
if(i % j == 0){
num[i-1]++;
}
}
}
for(int i = 0; i < 100; i ++){
if(num[i] %2 == 0){
result++;
}
}
System.out.println(“result===” + result);
}
}
问题延伸:如果是n盏灯,k个人呢
这里给出复杂度为O(k*n)的约数个数算法,这里的约数个数是指ni在1-k之间的约数个数,方法一复杂度也为O(k*n)。还没想到怎么优化,读者如果有想法,希望给点指点。
代码:
package com.ldw.test;
public class demo5 {
public static void main(String[] args){
Light light=new Light(10,5);
light.calculate();
System.out.println(“===========”);
Light light2=new Light(100,100);
light2.calculate();
}
}
class Light{
private int lightNum;
private int stuNum;
private int result = 0;
public Light(int lightNum, int stuNum){
this.lightNum = lightNum;
this.stuNum = stuNum;
}
public int getResult(){
return this.result;
}
public void calculate(){
//保存约数个数
int num[] = new int[this.lightNum];
//将数组初始化为0
for(int i = 0; i < num.length; i++){
num[i] = 0;
}
//计算每一个灯的约数个数
for(int i = 1; i <= this.lightNum; i++){
for(int j = 1; j <= this.stuNum; j ++){
if(i % j == 0){
num[i - 1]++;
}
}
}
for(int i = 0; i < num.length; i++){
if(num[i] % 2 == 1){
System.out.print(i+1+" ");
this.result++;
}
}
System.out.println(“”);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
总结
首先是感觉自己的基础还是不够吧,大厂好像都喜欢问这些底层原理。
另外一部分原因在于资料也还没有看完,一面时凭借那份资料考前突击恶补个几天居然也能轻松应对(在这里还是要感谢那份资料,真的牛),于是自我感觉良好,资料就没有怎么深究下去了。
之前的准备只涉及了Java、Android、计网、数据结构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。
下一步还是要查漏补缺,进行针对性复习。
最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!在这里也免费分享给大家,希望大家不要犯和我一样的错误呀!!!一定要看完!
获取方式:点击我的GitHub
希望大家不要犯和我一样的错误呀!!!一定要看完!**
[外链图片转存中…(img-fahA2V3D-1711124575412)]
[外链图片转存中…(img-oGjUJuON-1711124575412)]
[外链图片转存中…(img-Kp7SdM2C-1711124575413)]
获取方式:点击我的GitHub
更多推荐
所有评论(0)