贪心算法练习day2

删除字符

1.题目及要求

2.解题思路

1)初始化最小字母为‘Z’,确保任何字母都能与之比较

2)遍历单词,找到当前未删除字母中的最小字母

3)获取当前位置的字母  current = word.charAt(i);

4)删除最小字母之前的所有字母  word=word.substring(index+1);

5)  将最小字母添加到结果字符,更新剩余可删除字母数量 t -= index ;

3.详细代码

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);String word=scan.next();int t=scan.nextInt();//删除字母的数量char min;char current;//存储当前遍历到的字母int index=0;//从左到右t个字母中最小字母的位置,找到将其保存,并且删除它之前的所有字母,之后的字母去它后面寻找String result="";//存储结果单词while(t>0){min='Z';for (int i = 0; i < word.length(); i++) {current=word.charAt(i);if(current<min){min=current;index=i;}}//获取到t个字母里面的最小字母之前的字母数,删除操作word= word.substring(index+1);//第一趟确定第一小的字母,第二趟第二小,以此类推result+=min;t-=index;//还能删除的字母数量}System.out.println(result+word);//记得把word剩余的字母补上哦scan.close();}
}

4.学习要点

1)读取用户输入的字符,字符串,整数...等等

Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
char a = scan.next().charAt(0);
int a = scan.nextInt();

2)charAt(int index) String类的一个方法

 3)substring()

搬砖

1.题目及要求

2.解题思路

贪心+01背包+排序

先循环输入每件物品的重量,价值,以及重量价值之和,存放到二维数组里。

然后依据数组里的某一特性进行排序,用到Arraya.sort()方法

外层循环遍历每件物品。内层循环从背包的最大容量到当前物品的重量。

3.详细代码

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);final int count = scan.nextInt();int[][] structs = new int[count + 1][3]; // 这里用数组。注意:Record类(类似C语言结构体)是Java14特性,不能用int capacity = 0;for (int i = 1; i <= count; ++i) {int wi = scan.nextInt(), vi = scan.nextInt();capacity += wi;structs[i][0] = wi;structs[i][1] = vi;structs[i][2] = wi + vi;}scan.close();Arrays.sort(structs, Comparator.comparingInt(struct -> struct[2])); // 根据sum排序(lambda表达式,相当于匿名内部类)// 这里用滚动数组更方便,因为是倒序遍历,0-1背包滚动数组详解:https://www.bilibili.com/video/BV1BU4y177kY/int[] dp = new int[capacity + 1];for (int i = 1; i <= count; ++i) {int wi = structs[i][0], vi = structs[i][1];for (int j = capacity; j >= wi; --j)if (j - wi <= vi)dp[j] = Math.max(dp[j - wi] + vi, dp[j]);}Arrays.sort(dp);System.out.println(dp[capacity]);}
}

4.学习要点

1)Arrays.sort()方法

2)i++,++i ;

3)循环输入每个物品的信息

      for (int i = 1; i <= count; ++i) {int wi = scan.nextInt(), vi = scan.nextInt();capacity += wi;structs[i][0] = wi;structs[i][1] = vi;structs[i][2] = wi + vi;}

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

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

相关文章

MR混合现实情景实训教学系统在商务外语课堂的应用

一、MR混合现实情景实训教学系统的特点 MR混合现实情景实训教学系统是一种将虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;技术相结合的教育平台。它通过三维立体图像&#xff0c;模拟真实的商务环境&#xff0c;使学生在虚拟环境中进行外语沟通实…

精品基于SpringBoot的体育馆场地预约赛事管理系统的设计与实现-选座

《[含文档PPT源码等]精品基于SpringBoot的体育馆管理系统的设计与实现[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; Java——涉及技术&#xff1a; 前端使用技术&#…

状态模式(State Pattern)

定义 状态模式&#xff08;State Pattern&#xff09;是一种行为设计模式&#xff0c;它允许对象在其内部状态改变时改变其行为。这意味着&#xff0c;当对象的状态发生变化时&#xff0c;它的行为也会发生变化。状态模式特别适用于行为依赖于其状态的对象&#xff0c;而且当这…

学习pybind11:Hello World例子

首先要明白pybind11是干啥的&#xff0c;对于一个C/C库&#xff0c;可以用pybind11封装它的接口为Python接口&#xff0c;这样得到一个python库&#xff0c;就可以把功能强大的库丢给使用python的boys & girls使用了~ 因此&#xff0c;使用pybind11做封装&#xff0c;是我…

分享便携式血氧仪单片机方案

血氧仪主要测量指标分别为脉率、血氧饱和度、灌注指数。血氧饱和度是临床医疗上重要的基础数据之一。以家用指压式血氧仪为例&#xff0c;一个血氧仪一般由MCU、存储芯片、两个控制LED的数模转换器、两个发光二极管驱动等组成。 灵动微电子的MM32MCU产品已被广泛地应用在了一些…

代码随想录算法训练营第44天|● 完全背包 ● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ

文章目录 ● 完全背包卡码网&#xff1a;52. 携带研究材料-完全背包理论练习代码&#xff1a; ● 518. 零钱兑换 II思路&#xff1a;五部曲 代码&#xff1a;滚动数组代码二&#xff1a;二维数组 ● 377. 组合总和 Ⅳ思路&#xff1a;五部曲 代码&#xff1a; ● 完全背包 卡码…

LeetCode 2621.睡眠函数

请你编写一个异步函数&#xff0c;它接收一个正整数参数 millis &#xff0c;并休眠 millis 毫秒。要求此函数可以解析任何值。 示例 1&#xff1a; 输入&#xff1a;millis 100 输出&#xff1a;100 解释&#xff1a; 在 100ms 后此异步函数执行完时返回一个 Promise 对象 …

Bert-as-service 学习

pip3 install --user --upgrade tensorflow 安装遇到的问题如下&#xff1a; pip3 install --user --upgrade tensorflow 1052 pip uninstall protobuf 1053 pip3 uninstall protobuf 1054 pip3 install protobuf3.20.* 1055 pip3 install open-clip-torch2.8.2 1…

C#单向链表实现:Append,Move,Delete,InsertAscending, InsertUnAscending,Clear

目录 一、链表定义 二、链表设计 1.先定义一个结点类&#xff08;Node&#xff09; 2.再定义链表类&#xff08;LinkedList&#xff09;并依次设计其方法 3.再实现删除方法 4.再实现Insert 的方法 5.再增加InsertAscending升序插入 6.再增加 InsertUnAscending 的方法…

数据库CLOB类型

CLOB&#xff08;Character Large Object&#xff09;是一种数据库字段类型&#xff0c;通常用于存储大量的字符数据&#xff0c;如文本、日志、XML 数据等。 在数据库中&#xff0c;CLOB 类型可以存储比普通字符串类型更大的数据量&#xff0c;通常用于保存超过数据库限制长度…

如何选择科技公司或者技术团队来开发软件项目呢

最近有客户问我们为什么同样软件项目不同公司报价和工期差异很大&#xff0c;我们给他解释好久才讲清楚&#xff0c;今天整理一下打算写一篇文章来总结一下&#xff0c;有需要开发朋友可以参考&#xff0c;我们下次遇到客户也可以直接转发文章给客户自己看。 我们根据我们自己报…

EMR StarRocks实战——Mysql数据实时同步到SR

文章摘抄阿里云EMR上的StarRocks实践&#xff1a;《基于实时计算Flink使用CTAS&CDAS功能同步MySQL数据至StarRocks》 前言 CTAS可以实现单表的结构和数据同步&#xff0c;CDAS可以实现整库同步或者同一库中的多表结构和数据同步。下文主要介绍如何使用Flink平台和E-MapRed…

未来智能:嵌入式系统的创新应用

未来智能&#xff1a;嵌入式系统的创新应用 随着科技的不断进步和智能化的发展&#xff0c;嵌入式系统在各个领域都有着广泛的应用。未来&#xff0c;嵌入式系统将在智能化、自动化、物联网等方面发挥越来越重要的作用。以下将从几个创新应用方面论述嵌入式系统在未来智能领域…

jvm常用参数配置

一、 常用参数 -Xms JVM启动时申请的初始Heap值&#xff0c;默认为操作系统物理内存的1/64但小于1G。默认当空余堆内存大于70%时&#xff0c;JVM会减小heap的大小到-Xms指定的大小&#xff0c;可通过-XX:MaxHeapFreeRation来指定这个比列。Server端JVM最好将-Xms和-Xmx设为相同…

Java SpringBoot微服务面试题

Java SpringBoot微服务面试题 前言1、什么是 SpringBoot&#xff1f;2、什么是起步依赖&#xff1f;3、什么是自动配置&#xff1f;4、什么是命令行界面&#xff1f;5、什么是Actuator监控器&#xff1f;6、SpringBoot 的核心注解有哪些&#xff1f;7、什么是YAML&#xff1f;8…

Leetcoder Day26| 回溯part06:总结+三道hard题

332.重新安排行程 给定一个机票的字符串二维数组 [from, to]&#xff0c;子数组中的两个成员分别表示飞机出发和降落的机场地点&#xff0c;对该行程进行重新规划排序。所有这些机票都属于一个从 JFK&#xff08;肯尼迪国际机场&#xff09;出发的先生&#xff0c;所以该行程必…

[C++]使用C++部署yolov9的tensorrt模型进行目标检测

部署YOLOv9的TensorRT模型进行目标检测是一个涉及多个步骤的过程&#xff0c;主要包括准备环境、模型转换、编写代码和模型推理。 首先&#xff0c;确保你的开发环境已安装了NVIDIA的TensorRT。TensorRT是一个用于高效推理的SDK&#xff0c;它能对TensorFlow、PyTorch等框架训…

go - 学习笔记 -2

go - 学习笔记 -2 类型转换运算符输入输出函数输入输出函数应用流程控制语句之分支语句流程控制语句之多分支语句星座案例分支语句嵌套循环语句循环语句和分支语句之间的嵌套for循环的作用域退出循环语句 类型转换 package mainimport ("fmt""reflect"&qu…

【寸铁的刷题笔记】图论、bfs、dfs

【寸铁的刷题笔记】图论、bfs、dfs 大家好 我是寸铁&#x1f44a; 金三银四&#xff0c;图论基础结合bfs、dfs是必考的知识点✨ 快跟着寸铁刷起来&#xff01;面试顺利上岸&#x1f44b; 喜欢的小伙伴可以点点关注 &#x1f49d; &#x1f31e;详见如下专栏&#x1f31e; &…

Java毕业设计-基于springboot开发的漫画之家系统-毕业论文+PPT(有源代码)

文章目录 前言一、毕设成果演示&#xff08;源代码在文末&#xff09;二、毕设摘要展示1.开发说明2.需求分析3、系统功能结构 三、系统实现展示1、系统功能模块2、后台模块3、用户功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基于springboot开发的漫画之家系统-毕业论…