刷题记录02

题目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 hereMap<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的值为当前元素,并置次数为1result = 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.hqwc.cn/news/19389.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LNMP环境搭建

文章目录 LNMP环境搭建LNMP部署之Nginx编译安装nginx LNMP部署之MySQLRPM安装 LNMP部署之PHPyum安装php连接数据库测试 LNMP环境搭建 LNMP是一种web服务器架构&#xff0c;与LAMP类似。它由Linux、Nginx、MySQL和PHP组成&#xff0c;这四个组合再一起提供了一个完整的Web服务器…

【数据结构】AVL树

文章目录 AVL树1. AVL树的概念2. AVL树节点的定义3. AVL树的插入4. AVL树的旋转 AVL树 1. AVL树的概念 二叉搜索树可以缩短查找的效率&#xff0c;但是如果数据接近有序二叉搜索树将会退化为单支&#xff0c;查找元素相当于在顺序表中搜索元素&#xff0c;效率低下。 当向二…

【面试题28】什么是PHP-FPM?它与PHP和Nginx有什么关系

文章目录 一、前言二、什么是PHP-FPM&#xff1f;三、PHP-FPM的生命周期3.1 启动阶段3.2 初始化阶段3.3 请求处理阶段3.4 关闭阶段 四、PHP-FPM与PHP的关系五、PHP-FPM与Nginx的通信方式六、总结 一、前言 本文已收录于PHP全栈系列专栏&#xff1a;PHP面试专区。 计划将全覆盖P…

华为战略方法论:BLM模型之战略意图(限制版)

目录 前言 案例 BLM模型 专栏列表 CSDN学院 个人简介 前言 对于任何一家企业来说&#xff0c;即便你没有清晰的战略规划。 一般也都是会有战略意图的。 战略意图具体是指你主观想要达成什么样的期望或者是状态。 换句话说&#xff0c;如果没有这种期望&#xff0c;你…

【云存储】主流分布式文件系统介绍

目录 1、引言 2、云存储与分布式文件系统 2.1、云存储 2.2、分布式文件系统 3、Google的三大云计算与云存储论文 3.1、The Google File System&#xff08;谷歌文件系统&#xff09; 3.2、MapReduce&#xff1a;Simplified Data Processing on Large Clusters&#xff0…

分类模型评估指标详解(二分类、多分类、混淆矩阵)

一 、二分类评估 1.混淆矩阵 (ConfusionMatrix) TP&#xff1a;1的预测为1 (正确的积极) 正确判断 FP&#xff1a;0预测为1 (错误的积极) 错误判断 FN&#xff1a;1预测为0 (正确的消极) 漏判断的 TN&#xff1a;0预测为0 (错误的消极) 成功未判断的 准确率&#xff1a;(a…

个人云服务器搭建MQTT服务器

个人云服务器搭建MQTT服务器 文章目录 个人云服务器搭建MQTT服务器1️⃣ 前言2️⃣ EMQX部署 1️⃣ 前言 MQTT &#x1f449;MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;即消息队列遥测传输协议 • 是一个轻量的发布订阅模式消息传输协议&#xff0c;专门…

STM32 Proteus仿真LCD12864俄罗斯方块-FZ0063

STM32 Proteus仿真LCD12864俄罗斯方块-FZ0063 Proteus仿真小实验&#xff1a; STM32 Proteus仿真LCD12864俄罗斯方块-FZ0063 功能&#xff1a; 硬件组成&#xff1a;STM32F103R6单片机 LCD12864显示器多个按键 1.标准俄罗斯方块经典游戏玩法&#xff0c;带计时&#xff0c…

Mysql 实现批量插入对已存在数据忽略或更新

Mysql 实现批量插入对已存在数据忽略/更新 文章目录 Mysql 实现批量插入对已存在数据忽略/更新一. 表的准备二. 实现2.1 实现原理2.2 批量插入对已存在数据忽略 一. 表的准备 CREATE TABLE demo (id int NOT NULL AUTO_INCREMENT COMMENT 主键id,name varchar(10) DEFAULT NUL…

shell脚本--------shell变量、条件表达式、流程控制

第三阶段基础 时 间&#xff1a;2023年7月7日 参加人&#xff1a;全班人员 内 容&#xff1a; shell变量、条件表达式、流程控制 目录 一、shell变量 二、shell条件表达式与运算符 三、break和continue语句 演示&#xff1a;break语句 continue语句 四、实例拓展 …

9.2.4 vim 的暂存盘、救援回复与打开时的警告讯息

当我们在使用 vim 编辑时&#xff0c; vim 会在与被编辑的文件的目录下&#xff0c;再创建一个名为.filename.swp 的文件。 比如说我们在上一个小节谈到的编辑 /tmp/vitest/man_db.conf 这个文件时&#xff0c; vim 会主动的创建 /tmp/vitest/.man_db.conf.swp 的暂存盘&#x…

常用数据分类算法原理介绍、优缺点分析与代码实现[LR/RF/DT/SVM/NavieBayes/GBDT/XGBoost/DNN/LightGBM等]

本文的主要目的是总结记录日常学习工作中常用到的一些数据分类算法&#xff0c;对其原理简单总结记录&#xff0c;同时分析对应的优缺点&#xff0c;以后需要的时候可以直接翻看&#xff0c;避免每次都要查询浪费时间&#xff0c;欢迎补充。 机器学习领域中常用的分类模型包括以…