笔试强训第三天

目录

选择题

编程题 


选择题

  • name是Person的私有变量,其子类虽然继承,但是不能使用,private只能在本类中使用

  •  超类表示是父类的意思

编程题 

import java.util.*;
import java.lang.*;
public class Main{
       public static void main(String []args){
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        int i=0;
        String max="";
        String count="";
        while(i<str.length()){
            char c=str.charAt(i);
            if(c<='9'&& c>='0'){
                count+=c;
            }else{
                if(count.length()>max.length()){
                    max=count;
                }else{
                    count="";
                }
            }
            i++;
        }
        if(count.length()>max.length()){
                    max=count;
                }
        System.out.println(max);
    }

}
  •  用count存储连续的数字字符串,max存储最大的数字字符串

import java.util.*;
public class Solution {
    public int MoreThanHalfNum_Solution(int [] array){
        Arrays.sort(array);
        int mid=(array.length/2);
        return array[mid];
    }
}
  •  第一种解法,下标索引为array.length/2的值肯定是众数
import java.util.*;
public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
        int result=array[0];
        int time=1;
        for(int i=1;i<array.length;i++){
            if(time!=0){
                if(result==array[i]){
                    time++;
                }else{
                    time--;
                }
            }else{
                result=array[i];
                time=1;
            }
        }
        return result;
        
    }
}
  • 第二种思路就是如果有一个数是众数,那么拿众数的次数跟其他所有数来相减,最后众数的次数肯定大于0

参考多数投票算法的思想

先随意确定一个候选元素,cnt是候选元素的计数,当遇到一个跟候选元素不同的元素时,两者数量上抵消一个,cnt减1。一旦cnt变成0,就重新找一个候选元素。
当遇到一个与候选元素不同的元素时,就要抵消。
对于候选元素和当前元素,可能存在两种情况:

  1. 两者中有一个正好是主要元素;
  2. 两者都不是主要元素。

对于情况1,抵消过后,主要元素还是主要元素;对于情况2,可以说主要的元素的地位得到了巩固。所以算法最终能找到主要元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

库里不会投三分

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值