day01刷题记录

news2024/11/15 22:20:47

刷题

  • 题目一
    • 分析
    • 题解
  • 题目二
    • 分析
    • 题解

题目一

牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。
例如:
一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3
一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3
一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2
为了让比赛更有看点,牛牛想安排队伍使所有队伍的水平值总和最大。
如样例所示:
如果牛牛把6个队员划分到两个队伍
如果方案为:
team1:{1,2,5}, team2:{5,5,8}, 这时候水平值总和为7.
而如果方案为:
team1:{2,5,8}, team2:{1,5,5}, 这时候水平值总和为10.
没有比总和为10更大的方案,所以输出10.

输入描述:
输入的第一行为一个正整数n(1 ≤ n ≤ 10^5)

第二行包括3*n个整数a_i(1 ≤ a_i ≤ 10^9),表示每个参赛选手的水平值.

输出描述:
输出一个整数表示所有队伍的水平值总和最大值.

分析

牛牛发现队伍的水平值等于该队伍队员中第二高水平值。
为了让比赛更有看点,牛牛想安排队伍使所有队伍的水平值总和最大。
这里最关键的就是这两句话,从而引申出俩个问题.
第一个问题怎么找出第二水平值?
第二个问题是怎么确保所有队伍的水平值最大?
我既然提出了这俩个问题,那么自然就会去解决它,我的大体思路就是
1.先排序
2.再分组
看图解,大家就明白了
在这里插入图片描述

题解

代码展示:

import java.util.*;
public class Main{
public static void main(String[] args) {
	Scanner scan = new Scanner(System.in);
	while(scan.hasNextInt()) {
		int n = scan.nextInt();
		long[] array = new long[3*n];
		for(int i = 0;i < (3*n);i++) {
			array[i] = scan.nextLong();
			}
Arrays.sort(array);
long sum = 0;
		for (int i = 0; i < n; i++) {
			sum += array[array.length-(2*(i+1))];
}
System.out.println(sum);
}
}

题目二

描述
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”
输入描述:
每个测试输入包含2个字符串
输出描述:
输出删除后的字符串

分析

这里我们要分清楚输入和输出.
输入的是俩个字符串
输出的是删除后的字符串.
我的解决思路如下:
1.申请一个256的空数组
2.遍历str2中字母出现的次数,在数组记录下来
3.遍历str1中字母出现的次数,如果在数组出现过,就不记录.
4.把没出现过的字符串输出即可.
具体图解如下:
在这里插入图片描述

题解

现如今我提供俩种代码,一种是直接利用数组,一种是使用hashmap

直接使用数组

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
      
            String str1 =in.nextLine();
            String str2 =in.nextLine();
            String result=deleteChars(str1,str2);
            System.out.println(result.toString());

    }
    public static String deleteChars(String str1, String str2) {
        int[] charCount = new int[256];

        // 遍历str2,记录每个字符出现的次数
        for (int i = 0; i < str2.length(); i++) {
            charCount[str2.charAt(i)]++;
        }

        StringBuilder result = new StringBuilder();

        // 遍历str1,如果字符没有在str2中出现过,则添加到结果中
        for (int i = 0; i < str1.length(); i++) {
            if (charCount[str1.charAt(i)] == 0) {
                result.append(str1.charAt(i));
            }
        }

        return result.toString();
    }
}

使用java内部hashmap解决

public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        String s1=scanner.nextLine();
        String s2=scanner.nextLine();
        HashMap<Character,Integer> map=new HashMap<>();
        for (int i=0;i<s2.length();i++){
            if (map.get(s2.charAt(i))==null){
                map.put(s2.charAt(i),1);
            }else {
                map.put(s2.charAt(i),map.get(s2.charAt(i))+1);
            }
        }
        String ret="";
        for(int j=0;j<s1.length();j++){
            if(map.get(s1.charAt(j))==null){
                ret+=s1.charAt(j);
            }
        }
        System.out.println(ret);
    }

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

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

相关文章

access数据库连接sqlserver实现远程连接

由于项目需要对接生产系统&#xff0c;但是生产系统使用的是access数据库&#xff08;这么老还在用&#xff0c;不知道咋想的&#xff09;&#xff0c;客户又想把项目部署到阿里云上&#xff0c;需要阿里云远程连接本地的access数据库&#xff08;心里一句MMP送上&#xff09;&…

Java——线程池详细讲解

文章目录 一、线程池一、线程池基础1.1 什么是线程池1.2 为什么使用线程池1.3 线程池有哪些优势1.4 应用场景 二、线程池使用2.1 Java内置线程池 ThreadPoolExecutor2.1.1 线程池的七个参数2.1.1.1 **int corePoolSize 核心线程数量**2.1.1.2 int maximumPoolSize 最大线程数2.…

假期后,野兔百科系统网站源码新版更新发布

这个是野兔百科系统中文版更新&#xff0c;这次更新了增加几个功能模块&#xff0c;几个已知的问题&#xff0c;修复系统部分功能。 系统名称&#xff1a;野兔百科系统 系统语言&#xff1a;中文版 系统源码&#xff1a;不加密&#xff0c;开源 系统开发&#xff1a;PHPMySQL …

尚融宝29-提现和还款

目录 一、提现 &#xff08;一&#xff09;需求 &#xff08;二&#xff09;前端 &#xff08;三&#xff09;后端 1、提现接口 2、回调接口 二、还款 &#xff08;一&#xff09;需求 &#xff08;二&#xff09;前端 &#xff08;三&#xff09;后端 1、还款接口 …

第一章:概述

1&#xff0c;因特网概述 1.网络、互联网和英特网 网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。 多个网络还可以通过路由器互连起来&#xff0c;这样就构成了一个覆盖范围更大的网络&#xff0c;即互联网(或互连网)。因此&#xff0c;互联网是“网络的网络…

UE蓝图基础学习笔记(未完待续2023/05/03)

文章目录 一、项目创建1&#xff09;准备流程&#xff08;选择模板、开发语言、平台、质量等&#xff09;2&#xff09;界面介绍 二、Actor三、操作关卡对象&#xff08;旋转、移动、缩放和坐标轴&#xff09;四、常用快捷键五、运行游戏六、蓝图介绍七、蓝图节点八、操作事件图…

Azure DevOps Server 2022.0.1升级手册

Contents 1. 概述2. 操作方法 2.1 安装操作系统2.2 安装数据库2.4 还原数据2.3 安装和配置Azure DevOps Server 1. 概述 Azure DevOps Server 是微软公司经过20多年的持续开发&#xff0c;逐渐将需求管理、敏捷实践、源代码管理、持续集成等功能集成一体&#xff0c;实现应用软…

AutoHotKey简单入门

简单入门 快捷键 ^j::Send, Hello world! Return^j::代表CtrlJ&#xff0c;其中^代表Ctrl键 Send命令&#xff1a;在光标处输入Hello world! 也就是说&#xff0c;你按下CtrlJ后&#xff0c;将会输入字符串Hello world! Return即返回 热字串 ::ftw::Free the whales Ret…

抖音营销策略:新手如何利用抖音提高品牌曝光度

随着短规频平台的兴起&#xff0c;抖音作为其中的校佼者&#xff0c;已经成为了众多用户和企业的营销利器。但是&#xff0c;对于抖音新手而言&#xff0c;如何在这个平台上快速提升影响力呢?下面不若与众就为大家分享几个实用的方法。 一、关注抖音热门话题和潮流 抖音平台上…

力扣题库刷题笔记581-最短无序连续子数组

1、题目如下&#xff1a; 2、题解代码实现&#xff1a; 浅看题解&#xff0c;解题思路和本人接替思路一毛一样&#xff0c;奈何没有想到用双指针&#xff0c;在代码实现上也存在问题。当知道用双指针的时候&#xff0c;本题也变得相对简单。思路如下&#xff1a; a、输入仅存在…

Vue条件渲染v-if和v-show

条件渲染v-if和v-show <div id"root"><!-- <div v-if"true">v-if</div>--> <!-- <div v-show"true">v-show</div>--> n:{{n}}<button click"n">点击n</button><div v…

法规标准-UN R152标准解读

UN R152是做什么的&#xff1f; UN R152 全名为关于M1和N1型机动车高级紧急制动系统&#xff08;AEBS&#xff09;型式认证的统一规定&#xff0c;是联合国对于M1和N1型车辆AEBS系统认证的要求说明&#xff0c;当满足其要求内容时&#xff0c;才可通过联合国的认证&#xff0c…

数字化转型导师坚鹏:面向数字化转型的大数据顶层设计实践

面向数字化转型的大数据顶层设计实践 课程背景&#xff1a; 数字化背景下&#xff0c;很多企业存在以下问题&#xff1a; 不清楚大数据思维如何建立&#xff1f; 不清楚企业大数据分析方法&#xff1f; 不了解大数据应用成功案例&#xff1f; 课程特色&#xff1a; …

(转载)01.Matplotlib 图像结构-figure()axes设置

​概要&#xff1a;介绍matplotlib 绘制图像起手&#xff0c; figure() 的设置&#xff0c; axes() 的设置。主要的内容可移步最后部分的总结。 04 Matplotlib 总结 Matplotlib 提供了matplotlib.figure图形类模块&#xff0c;它包含了创建图形对象的方法。通过调用 pyplot 模…

Hive3面试基础

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、基本知识Hive31.表的类型和表的存储格式a)b)c)创建表i&#xff09;ii&#xff09; 2.表 二、使用步骤1.引入库2.读入数据 总结 前言 面试准备之Hive 回顾…

个人代码管理

项目描述&#xff1a; 在公司使用软件大家会经常使用GitLab进行代码管理&#xff0c;但是GitLab对于个人使用会有&#xff0c;操作相对复杂&#xff0c;且需要收费。GitHub的代码又都是开放的。经过上网查找和尝试&#xff0c;找到了一个可以日常用来保存自己代码的工具。&…

吴恩达和OpenAI的《面向开发者的ChatGPT提示工程》精华笔记

《ChatGPT Prompt Engineering for Developers》 面向开发者的ChatGPT提示工程 shadow 趁着假期&#xff0c;学习了prompt课程&#xff0c;做了一些精简和关键知识点的梳理&#xff0c;分享给大家。 LLM 可完成的任务 包括: 总结&#xff08;如总结用户评论&#xff09; 推断&a…

streamlit+pywebview,纯python以前后端形式写桌面应用

1、VSCode VSCode VSCode扩展&#xff1a;Python 2、配置PowerShell执行策略 以管理员身份运行PowerShell&#xff0c;运行Set-ExecutionPolicy RemoteSigned&#xff0c;并输入Y&#xff0c;回车确认 3、配置Python环境 只安装Python&#xff1a;华为镜像、阿里镜像、new…

DC-DC直流隔离升压高压输出电源模块12v24v48v转50V110V200V250V350V400V500V600V800V1000V微功率

特点 效率高达 80%以上1*2英寸标准封装单电压输出价格低稳压输出工作温度: -40℃~85℃阻燃封装&#xff0c;满足UL94-V0 要求温度特性好可直接焊在PCB 上 应用 HRB W2~40W 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为&#xff1a;4.5~9V、9~18V、及18~36V、…

Android 编译模块 (小记)

1.整编 source build/envbuild.sh lunch xxx make 2.单独编译模块 2.1 去Android.bp 中找模块名 比如我想编译system/core/fastboot&#xff0c;那么我就去找这个路径下的Android.bp/ Android.mk Android.bp 中找每个模块的那么就行 然后直接make这个name make fastboot_…