316算法题整理

1

题目

这天小苯来到了超市购买物品,一共有 几种物品,每种物品只能购买一个,但有的物品支持优惠活动,有的并不支持,恰好本超市的结账是有“支付宝九五折”优惠的,小苯的支付宝余额还剩 人元,他想知道他仅使用支付宝进行支付的话,最多能买几件物品?

输入描述:

输入包含三行。
一行两个正整

第二行包含 n个正整数 ai(1< a:< 104)表示每个物品的价格。

第三行一个长度为 n的只含有0和1的字符串,表示每个物品是否支持优惠。(如果是1代表第之个物品支持优惠,否则不支持。)

 代码

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;public class BuyMore {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入物品的数量n: ");int n = scanner.nextInt(); // 读取物品数量System.out.println("请输入支付宝余额k: ");int k = scanner.nextInt(); // 读取支付宝余额// 存放每个物品的价格ArrayList<Integer> prices = new ArrayList<>();System.out.println("请输入每件物品的价格:");for (int i = 0; i < n; i++) {prices.add(scanner.nextInt()); // 读取每个物品的价格}scanner.nextLine(); // 读取行尾的换行符System.out.println("请输入每件物品是否参与优惠:");// 控制台输入字符串 代表每件物品是否参与优惠String supports = scanner.nextLine(); // 读取每个物品是否支持优惠ArrayList<Integer> discountPrices = new ArrayList<>();  // 存储支持优惠的物品价格ArrayList<Integer> nonDiscountPrices = new ArrayList<>();   // 存储不支持优惠的物品价格// 遍历support字符串 分别存储支持和不支持优惠的物品价格for (int i = 0; i < n; i++) {if (supports.charAt(i) == '1') {discountPrices.add(prices.get(i));} else {nonDiscountPrices.add(prices.get(i));}}Collections.sort(discountPrices);Collections.sort(nonDiscountPrices);// 初始化可以购买的物品数int itemsBought = 0;// 首先考虑支持优惠的物品for (int price : discountPrices) {int discountedPrice = (int)Math.ceil(price * 0.95); // 应用九五折优惠并向上取整if (k >= discountedPrice) {k -= discountedPrice; // 从余额中扣除金额itemsBought++;} else {break;}}// 然后考虑不支持优惠的物品for (int price : nonDiscountPrices) {if (k >= price) {k -= price;itemsBought++;} else {break;}}System.out.println(itemsBought); // 输出最多能买的物品数量scanner.close();}
}

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

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

相关文章

顺序表的操作

一、插入操作 顺序表的插入操作需要考虑插入位置、插入元素和数组容量等因素。具体步骤如下&#xff1a; 判断插入位置是否合法&#xff0c;即是否在数组范围内。 如果插入位置合法&#xff0c;判断数组容量是否已满。如果已满&#xff0c;则需要动态扩容&#xff0c;重新分配…

从阿里云降价,看中国云计算创新之变

继“疯狂星期四”历史级大降价后&#xff0c;阿里云“AI驱动、公共云优先”的战略布局再落一子。 近日&#xff0c;阿里云与菜鸟、高德地图、中远海运、东航物流、圆通速递、申通快递、中通快递、德邦快递、G7易流、地上铁、浙江大学智能交通研究所等共同发起成立“物流智能联…

Python接口自动化测试之详解post请求

前言 在HTTP协议中&#xff0c;与get请求把请求参数直接放在url中不同&#xff0c;post请求的请求数据需通过消息主体(request body)中传递。 且协议中并没有规定post请求的请求数据必须使用什么样的编码方式&#xff0c;所以其请求数据可以有不同的编码方式&#xff0c;服务…

linux最佳入门(笔记)

1、内核的主要功能 2、常用命令 3、通配符&#xff1a;这个在一些启动文件中很常见 4、输入/输出重定向 意思就是将结果输出到别的地方&#xff0c;例如&#xff1a;ls标准会输出文件&#xff0c;默认是输出到屏幕&#xff0c;但是用>dir后&#xff0c;是将结果输出到dir文…

Guitar Pro8许可证2024最新免费

作为一位吉他爱好者推荐官&#xff0c;我非常荣幸地向大家介绍一款备受赞誉的吉他工具——Guitar Pro8。这款软件是吉他爱好者们的必备之选&#xff0c;它以其卓越的功能和优势&#xff0c;全面覆盖学习演奏和绘谱创作的需求&#xff0c;帮助吉他爱好者们更好地提升自己的技能。…

JavaWeb一些开发问题

一、Restful package com.example.crudtest1.pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data NoArgsConstructor AllArgsConstructor public class Result {private Integer code;//响应码&#xff0c;1 代表成功; 0 代表失…

【框架】跨端开发框架介绍(Windows/MacOS/Linux/Andriod/iOS/H5/小程序)

1. 跨端框架介绍 跨端框架适用场景说明移动端 uniapp Andriod、iOS、H5、小程序、快应用 uniapp是一个使用Vue开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;选择相应目标进行编译&#xff0c;编译后分别部署到网站、APP、小程序多个平台 笔者&#x…

[小程序开发] 构造页面

一、Component方法 Component方法用于创建自定义组件&#xff0c;小程序页面也可以使用Component方法进行创建&#xff0c;从而实现复杂的页面逻辑开发。 使用Component方法构造页面&#xff0c;可以实现更加复杂的页面逻辑开发。 二、注意事项 1、要求.json文件中必须包含usi…

【编程项目开源】拼图游戏(鸿蒙版)

目标 做个拼图游戏 效果 开发工具 下载DevEco Studio 工程截图 开源地址 https://gitee.com/lblbc/puzzle/tree/master/puzzle_hongmeng_arkUI 关于 厦门大学计算机专业|华为八年高级工程师 专注《零基础学编程系列》 http://lblbc.cn/blog 包含&#xff1a;Java | 安卓…

强化学习------DDPG算法(附pytorch代码)

目录 一、前言二、基本原理2.1、经验回放2.2、更新过程2.2.1、Critic网络更新过程2.2.2、Actor网络更新过程2.2.3、 目标网络的更新 2.3、噪音探索 三、算法代码实现四、训练示例4.1、实现效果 一、前言 Deep Deterministic Policy Gradient (DDPG)算法是DeepMind团队提出的一…

LeetCode每日一题——移除元素

移除元素OJ链接&#xff1a;27. 移除元素 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 思路&#xff1a; 题目给定要求只能使用O(1)的额外空间并且原地修改输入数组&#xff0c;然后返回移除后的数组行长度。那 么我们就可以确我没有办法建立临时的数组存放我…

AcWing 790:数的三次方根 ← 浮点数二分

【题目来源】https://www.acwing.com/problem/content/792/【题目描述】 给定一个浮点数 n&#xff0c;求它的三次方根。【输入格式】 共一行&#xff0c;包含一个浮点数 n。【输出格式】 共一行&#xff0c;包含一个浮点数&#xff0c;表示问题的解。 注意&#xff0c;结果保留…

【Stable Diffusion】入门-01:原理简介+应用安装(Windows)+生成步骤

【Stable Diffusion】入门&#xff1a;原理简介应用安装&#xff08;Windows&#xff09;生成步骤 原理简介应用安装 原理简介 稳定扩散生成模型(Stable Diffusion)是一种潜在的文本到图像扩散模型&#xff0c;能够在给定任何文本输入的情况下生成照片般逼真的图像。 应用安…

面试-简单算法题

简单算法&#xff1a; 1.反转字符串 编写一个函数&#xff0c;将输入的字符串反转。 function reverseString(str) {return str.split().reverse().join(); }str.split(‘’)&#xff1a;使用 split(‘’) 方法将字符串 str 拆分成字符数组&#xff0c;每个字符都成为数组中…

电路方案分析(十八)四开关buck-boost双向同步DC/DC变换器方案

tip是&#xff1a;资料来自网络&#xff0c;仅供学习交流使用&#xff01; 1.概述 4开关降压升压双向DC-DC电源转换器在很多应用中都有使用。作为一个同步降压或同步升压转换器&#xff0c;其中只有两个开关切换&#xff0c;开关损耗减少到一半。只有当直流母线和电池电压彼此…

人形机器人进展:IEEE Robotics出版双臂通用协同机械手操作架构

文章目录 1. Main2. My ThoughtsReference彩蛋a. OpenAI 投资: 人形机器人公司 Figure AIb. 人工智能软件工程师 Devin 上线 1. Main 图1 人居环境下的人形双臂机器人系统 通用人形机器人 作为近年来机器人与AI交叉领域的研究热点和技术竞争高地&#xff0c;因其具备在 非结构化…

深度强化学习(六)(改进价值学习)

深度强化学习(六)(改进价值学习) 一.经验回放 把智能体与环境交互的记录(即经验)储存到 一个数组里&#xff0c;事后反复利用这些经验训练智能体。这个数组被称为经验回放数组&#xff08;replay buffer&#xff09;。 具体来说, 把智能体的轨迹划分成 ( s t , a t , r t ,…

软件工程(Software Engineering)

一、软件工程概述 1.软件生存周期 软件&#xff1a; 包含程序、数据及相关文档 软件工程&#xff1a; 涉及到软件开发、维护、管理等多方面的原理、工具与环境。最终的目的是开发高质量的软件。 目的&#xff1a; 提高软件生产率、提高软件质量、降低软件成本。 文档的作用&…

一瓶5.86万,听花酒什么来头?

听花酒&#xff0c;到底什么来头&#xff1f; 宣称有提升免疫力、改善睡眠、保障男性功能、调节生理紊乱、抗衰老等功效的听花酒&#xff0c;被315晚会曝光了。 相关话题词随即冲上了热搜。之后&#xff0c;售价最高达58600元的听花酒被京东、拼多多、淘宝等电商平台火速下架…

01、CMD与Hello world

一、CMD与Hello World 文章目录 一、CMD与Hello World1.什么是cmd2.打开cmd3.常用命令4.环境变量5.JDK的安装6.JDK环境变量的配置7.javac 与 java命令8.HelloWorld9.JRE与JDKJDK&#xff08;Java Development kit&#xff09;:Java 开发工具包JRE &#xff08;Java Runtime Env…