刷题记录02

news2024/12/26 22:05:13

题目1

在这里插入图片描述
解析:
遍历字符串,使用cur去记录连续的数字串,
如果遇到不是数字字符,则表示一个连续的数字串结束了,
则将数字串跟之前的数字串比较,如果更长,则更新更长的数字串更新到ret。
具体代码:

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String ret = "";
        String cur = "";
        int i = 0;
        for (; i < str.length(); i++) {
            char ch = str.charAt(i);
            if (ch >= '0' && ch <= '9') {
                cur = cur + ch + "";
            } else {
                if (ret.length() < cur.length()) {
                    ret = cur;
                }
                cur = "";
            }
        }
        //处理123abc123456这种情况
        if (i == str.length() && ret.length() < cur.length()) {
            ret = cur;
        }

        System.out.println(ret);
    }
}

题目2在这里插入图片描述

思路一:

  1. 定义一个HashMap来统计每个数字出现的次数
  2. 遍历数组,对每个数字:
  • 如果map中不存在该数字,将其加入map,value设为1
  • 如果map中存在该数字,将其value加1
  1. 遍历map,找到value最大的数字及其次数maxCount
  2. 如果maxCount > nums.length / 2,说明找到了出现次数超过数组长度一半的数字,返回该数字
  3. 否则返回0

具体代码:

 public static int MoreThanHalfNum_Solution1 (int[] numbers) {
        // write code here
        Map<Integer, Integer> count = new HashMap<>();
        for (int num:numbers){
            count.put(num, count.getOrDefault(num,0)+1);
        }
        int maxCount=0;
        int majority=0;
        for (Map.Entry<Integer,Integer>entry : count.entrySet()){
            if (entry.getKey() >maxCount){
                maxCount=entry.getValue();
                majority=entry.getKey();
            }

        }
        if (maxCount >numbers.length / 2){
            return majority;
        }
        return 0;
    }

思路二:
数组排序后,如果符合条件的数存在,则一定是数组中间那个数。
具体过程:
在这里插入图片描述

具体代码:

 public static int MoreThanHalfNum_Solution(int[] numbers){
        if (numbers == null || numbers.length == 0){
            return 0;
        }
        Arrays.sort(numbers);
        int len=numbers.length;
        int midNum=numbers[len/2];
        int count=0;
        for (int i=0;i<len;i++){
            if (numbers[i] == midNum){
                count++;
            }
        }
        if (count > len/2){
            return midNum;
        }
        return 0;

    }

思路三
众数:就是出现次数超过数组长度一半的那个数字
如果两个数不相等,就消去这两个数,最坏情况下,每次消去一个众数和一个非众数,那么如果存在众数,最后留下的数肯定是众数

在这里插入图片描述
实际的过程就是找众数

 public int MoreThanHalfNum_Solution3(int [] array) {
        if(array == null || array.length==0) {
            return 0;
        }
        int result = array[0];
        int times = 1; // 次数
        for(int i=1;i<array.length;++i){
            if(times != 0){
                if(array[i] == result) {
                    ++times; // 相同则加1
                }else{
                    --times; // 不同则减1
                }
            }
            else {
// 更新result的值为当前元素,并置次数为1
                result = array[i];
                times = 1;
            }
        }
// 判断result是否符合条件,即出现次数大于数组长度的一半
        times = 0;
        for(int i=0;i<array.length;++i){
            if(array[i] == result) {
                ++times;
                }
            }
        return (times > array.length/2) ? result : 0;
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/748116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线上阿里云短信盗刷问题实录

背景 营销系统中有定时任务处理将待支付订单变更为已取消,执行时间五分钟一次.业务执行处理异常会发送短信给相关开发人员进行短信提醒.从下午一点二十五开始,开发人员间隔五分钟就会收到业务执行异常的短信提醒.最初因为测试或是正式环境中确实有异常的业务,才会出现这个情况,…

C++结合EasyX写扫雷(new)

【游戏】C结合EasyX写扫雷&#xff08;时隔半年后重写&#xff09; 上一次写扫雷这一次实现思路设置全局变量Grid类Grid类的成员函数启动画面死循环监听鼠标事件 全部代码其他 上一次写扫雷 大约半年之前的寒假期间&#xff0c;我接触了EasyX这个图形库&#xff0c;于是试着写…

antd design 4 版本,表格操作列文字间隔小竖线

组件库可以直接使用 <Divider typevertical /> 时小记&#xff0c;终有成。

23 MFC 富文本

文章目录 ui 设置 使用AfxInitRichEdit2(); 初始化否则不显示 //初始化 BOOL CnotePadDlg::OnInitDialog() {CDialogEx::OnInitDialog();// 设置此对话框的图标。 当应用程序主窗口不是对话框时&#xff0c;框架将自动// 执行此操作SetIcon(m_hIcon, TRUE); // 设置大图标…

数学建模——TOPSIS法

TOPSIS法&#xff08;Technique for Order Preference by Similarity to ldeal Solution&#xff09; 可翻译为逼近理想解排序法&#xff0c;国内常简称为优劣解距离法 TOPSIS法是一种常用的综合评价方法&#xff0c;其能充分利用原始数据的信息&#xff0c;其结果能精确的反应…

一款基于JAVA开发的Echarts后台生成框架

目录 前言 一、Echarts后台生成框架 1、简介 2、开源地址 3、支持类型 二、图表生成实战 1、项目使用 2、后台折线图生成 3、Echarts改造 4、最终效果 总结 前言 之前的博文主要分享了一些关于Echarts的基本开发知识&#xff0c;在之前的博客中主要介绍的是在前端页面进…

魏副业而战:她又办了2套图书证

我是魏哥&#xff0c;与其躺平&#xff0c;不如魏副业而战&#xff01; 社群成员董姐又办了2套图书证&#xff0c;加上之前的1套&#xff0c;她已经有3套图书证了。 3套图书证意味着可以开9个闲鱼图书店铺。是不是感觉很NB。 董姐说&#xff0c;2套图书证等了快一个多月&…

Flink基本原理剖析讲解

1.Flink简介 Flink是一个批处理和流处理结合的统一计算框架&#xff0c;其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理&#xff0c;是业界最顶级的开源流处理引擎。 Flink最适合的应用场景是低时延的数据处理&#xff08;Data Processing…

面试题更新之-伪元素和伪类

文章目录 伪元素和伪类是什么&#xff1f;伪元素&#xff08;Pseudo-elements&#xff09;:伪类&#xff08;Pseudo-classes&#xff09;: css伪元素和伪类的区别使用css伪元素的好处使用css伪类的好处 伪元素和伪类是什么&#xff1f; 在CSS中&#xff0c;伪元素&#xff08;…

星云零售信贷基于 Apache Doris 的 OLAP 演进之路

本文导读&#xff1a; 腾梭科技是国内领先的零售金融数字化及安全服务提供商&#xff0c;是腾讯投资且在金融领域的战略合作伙伴&#xff0c;并与腾讯联合研发了“星云智慧信贷解决方案。在其信贷业务转型过程中&#xff0c;随着系统规模不断扩大&#xff0c;早期架构无法再满…

centos7根分区、文件系统扩容

1、 输入lsblk&#xff0c;查看到新硬盘sde&#xff0c;根目录现71G. 2、 创建分区fidisk /dev/sde 3、 刷新分区 partprobe /dev/sde&#xff0c;并创建物理卷 pvcreate /dev/sde1 4、 查看卷组名 vgdisplay 5、 将物理卷扩展到卷组 vgextend centos /dev/sde1 6、 查看逻辑巻…

linux系统安装步骤教程详解

linux是现在常用的一类操作系统&#xff0c;我们可以通过U盘、光驱、或者虚拟机进行安装。 具体步骤如下&#xff1a; 1.去https://www.centos.org/download/下载centos系统&#xff0c;其中CentOS-7.0-x86_64-DVD-1503-01.iso 是标准安装版&#xff0c;推荐下载这个; 2.使用U盘…

OCR技术的昨天今天和明天!2023年最全OCR技术指南!

OCR是一项科技革新&#xff0c;通过自动化大幅减少人工录入的过程&#xff0c;帮助用户从图像或扫描文档中提取文字&#xff0c;并将这些文字转换为计算机可读格式。这一功能在许多需要进一步处理数据的场景中&#xff0c;如身份验证、费用管理、自动报销、业务办理等都显得尤为…

MySQL常见笔试题

前言 数据库的考察在面试时可是十分常见的&#xff0c;MySQL作为一种常用的关系型数据库管理系统&#xff0c;对于它的介绍在面试时可是必不可少的&#xff0c;下面就是一些常见笔试题的模拟&#xff0c;希望可以帮助到你&#x1f642;&#x1f642; 所用到的表如下&#xff…

国产MCU-CW32F030开发学习-BH1750模块

国产MCU-CW32F030开发学习-BH1750模块 硬件平台 CW32_48F大学计划板CW32_IOT_EVA物联网开发评估套件BH1750数字型光照强度传感器 BH1750 BH1750是一款数字型光照强度传感器&#xff0c;能够获取周围环境的光照强度。其测量范围在0~65535 lx。lx勒克斯&#xff0c;是光照强…

界面设计利器!10款Sketch插件合集,助你事半功倍!

在界面设计领域&#xff0c;Sketch以其高效、小巧的优势获得了不少设计团队的喜爱&#xff0c;帮助全球设计师创造了许多不可思议的作品。在使用Sketch的过程中&#xff0c;辅助使用一些Sketch插件&#xff0c;可以让我们更加高效地完成设计任务。本篇文章&#xff0c;我们将揭…

torch分布式通信基础

torch分布式通信基础 1. 点到点通信2. 集群通信 官网文档&#xff1a;WRITING DISTRIBUTED APPLICATIONS WITH PYTORCH 1. 点到点通信 # 同步&#xff0c;peer-2-peer数据传递 import os import torch import torch.distributed as dist import torch.multiprocessing as mpdef…

热点探测技术架构设计与实践

1. 概述 说到热点问题&#xff0c;首先我们先理解一下什么是热点&#xff1f; 热点通常意义来说&#xff0c;是指在一段时间内&#xff0c;被广泛关注的物品或事件&#xff0c;例如微博热搜&#xff0c;热卖商品&#xff0c;热点新闻&#xff0c;明星直播等等&#xff0c;所以…

领域知识图谱的医生推荐系统:利用BERT+CRF+BiLSTM的医疗实体识别,建立医学知识图谱,建立知识问答系统

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

Xcode报错--访问keychain,出现弹窗处理方案

情景 访问keychain弹出弹窗&#xff0c;不想人工点击&#xff0c;比如自动化测试中使用keychain中的证书的情况 原因 Mac的保护机制 处理 1、人工&#xff1a;输入Password&#xff0c;点击Allow或者Always Allow 2、命令行处理 security unlock-keychain -p "<…