课堂测试之找水王

博客探讨找水王问题,指出一般用二重循环会使时间复杂度变大,提出能否用一次遍历找出水王,并给出了相关源码的转载链接。

在找水王的过程中,一般会用到二重循环,这样使得时间复杂度会变大,那么我们能不能用一次遍历将水王找出来呢?

源码:

package test;
public class shuiwang1 {
 /**
  * @param args
  */
 public static void main(String[] args)
 {
  String[] ids = {"003","001","dc","001","001","001","002"};
  System.out.println(find(ids));
 
 }
 
 public static String find(String[] id)
 {
      int n=id.length;
      String findid=null;
      int i,cishu;
      for(i=cishu=0;i<n;i++)
      {
       if(cishu==0)
       {
       findid=id[i];
       cishu=1;
       }
       else
       {
       if(findid==id[i]) cishu++;
       else cishu--;
       }
      }
      return findid;
     
 }
}

转载于:https://www.cnblogs.com/jccjcc/p/10955923.html

### 关于水争霸编程竞赛 #### 水争霸 C语言 编程竞赛概述 水争霸是一项面向广大程序员和爱好者的编程挑战赛,旨在通过解决实际问题来提升参赛者的技术水平。比赛通常会提供一系列具有不同难度级别的题目供选手解答。 对于C语言编程竞赛而言,参与者需运用标准C/C++库编写程序解决问题[^1]。上述给出的代码片段展示了如何处理交通信号灯的时间逻辑,在比赛中类似的算法设计能力是非常重要的。 #### 规则说明 - **环境准备**:确保拥有支持C/C++编译器的工作站或在线平台。 - **提交形式**:按照官方指定的方式上传源码文件,注意遵循命名约定。 - **测试案例**:除了自行构建的数据集外,还需考虑边界条件以及异常情况下的表现。 - **评分机制**:依据运行效率、内存占用等因素综合评定成绩;部分赛事可能还会考察代码可读性和文档质量。 #### 参与方式指导 为了参加此类活动,建议关注各大高校社团公告栏或是知名技术社区发布的消息通知。许多时候这类竞赛是由特定机构主办并开放报名链接给公众注册加入。另外也可以留意社交媒体上的宣传帖文获取最新动态。 ```c++ // 示例:简单的输入输出练习题 #include <iostream> using namespace std; int main(){ int num; cout << "请输入一个整数:" ; cin >> num; cout << "您输入的是:" << num << endl; return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值