课堂练习--“找水王续"
2024-10-21 09:27:53
设计思路:
①跟上次思路一样,将问题简化成从一个数组中找出出现次数最多的3个数。
②将“两两相消"的思路模式,变成“三一相消”
③初始化time为零,kingid为零,然后按顺序赋值,遇到跟kingid1相同的time1+1,其余两个同样;遇到跟三个都不同的所有time-1。
代码:
import java.util.*; public class Findthreenum { public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入数组的长度:");
int length = input.nextInt();
int[] id = new int[length];
System.out.println("请输入数组:");
for(int i=;i<length;i++)
{
id[i] = input.nextInt();
}
input.close(); int kingid1=;
int kingid2=;
int kingid3=;
int time1=;
int time2=;
int time3=; for(int i=;i<length;i++)
{
if(time1== && id[i]!=kingid2 && id[i]!=kingid3)
{
kingid1=id[i];
time1++;
}
else if(time2== && id[i]!=kingid1 && id[i]!=kingid3)
{
kingid2=id[i];
time2++;
}
else if(time3== && id[i]!=kingid1 && id[i]!=kingid2)
{
kingid3=id[i];
time3++;
}
else if(id[i]!=kingid1 && id[i]!=kingid2 && id[i]!=kingid3)
{
time1--;
time2--;
time3--;
}
else if(id[i]==kingid1)
{
time1++;
}
else if(id[i]==kingid2)
{
time2++;
}
else if(id[i]==kingid3)
{
time3++;
}
} System.out.println("水王分别是:" + kingid1 + "," + kingid2 + "," + kingid3); } }
结果截图:
总结:
本次的课堂练习相比上次而言感觉差不太多,就是出现次数多的数由一个变为三个,所以依旧采取上次的思路来做就不是很难了。
最新文章
- 使用<;c:if>;标签处理页面数据
- poj3341
- js 给样式添加随机颜色
- paip.批处理清理java项目冗余jar的方法
- NPTL 线程同步方式
- python之域与属性
- 为Elasticsearch添加中文分词
- @Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
- 用C实现一个简单的对拍器——致每个曾经为求AC披星戴月的程序员们
- [ZooKeeper] 2 环境搭建
- sqlserv 配置 CLR
- day11 函数的位置形参,位置实参,可变长位置形参,关键字形参
- HttpClient官方sample代码的深入分析(连接池)
- solr使用cursorMark做深度分页
- 初识kibana
- Potplayer快捷键
- Luogu1801_黑匣子_KEY
- TensorFlow(实战深度学习框架)----深层神经网络(第四章)
- 99. Recover Binary Search Tree (Tree; DFS)
- Oracle字符编码与汉字存储长度的处理