2023-spring 1. 补给马车

news2024/12/22 19:20:15
🍎道阻且长,行则将至。🍓

🌻算法,不如说它是一种思考方式🍀


算法专栏: 👉🏻123


一、🌱2023-spring 1. 补给马车

  • 题目描述:远征队即将开启未知的冒险之旅,不过在此之前,将对补给车队进行最后的检查。supplies[i] 表示编号为 i 的补给马车装载的物资数量。
    考虑到车队过长容易被野兽偷袭,他们决定将车队的长度变为原来的一半(向下取整),计划为:
    找出车队中 物资之和最小 两辆 相邻 马车,将它们车辆的物资整合为一辆。若存在多组物资之和相同的马车,则取编号最小的两辆马车进行整合;
    重复上述操作直到车队长度符合要求。
    请返回车队长度符合要求后,物资的分布情况。

  • 来源:力扣(LeetCode)

  • 难度:简单

  • 提示:
    2 <= supplies.length <= 1000
    1 <= supplies[i] <= 1000

  • 示例 1
    输入:supplies = [7,3,6,1,8]
    输出:[10,15]
    解释:
    第 1 次合并,符合条件的两辆马车为 6,1,合并后的车队为 [7,3,7,8];
    第 2 次合并,符合条件的两辆马车为 (7,3) 和 (3,7),取编号最小的 (7,3),合并后的车队为 [10,7,8];
    第 3 次合并,符合条件的两辆马车为 7,8,合并后的车队为 [10,15];
    返回 [10,15]
    示例 2
    输入:supplies = [1,3,1,5]
    输出:[5,5]

🌴解题

模拟

即找出数组相邻的两个数之和,对当前一轮最小的和的元素进行合并,调整之后继续直到长度满足要求(长度为原来一半)。

class Solution {
    public int[] supplyWagon(int[] supplies) {
        int lengthA= supplies.length/2;//整理后的车队长度
        int length= supplies.length;//原车队长度
        int k=1,j=1,min=0;// min - k;  i - j

        while(length>lengthA) {//对车队长度修整并递减
            int sum=1000000;//要求整合最小的,那我取一个最大的,来记录
            boolean tag=true;
            j=1;
            for (int i = 0; i < supplies.length&&j< supplies.length; i++) {//遍历车队,i j 是相邻的两辆车
                //1. 找车 i
                while (supplies[i]==0) {//数值为 0,表示车子已经被合并,不存在了
                    i++;
                    if(i>= supplies.length){
                        tag=false;//结束标志
                        break;
                    }
                }
                if(!tag)//结束标志,结束 for 循环
                    break;

                //2. 找车 j
                j=i+1;
                if(j>= supplies.length)
                    break;
                while (supplies[j]==0) {
                    j++;
                    if(j>= supplies.length){
                        tag=false;
                        break;
                    }
                }
                if(!tag)//结束标志,结束 for 循环
                    break;
                
                if(supplies[i]+supplies[j]<sum){//找到较小的相邻两车
                    min=i;
                    k=j;
                    sum=supplies[i]+supplies[j];
                }

            }
            //找到当前车队最小的相邻两车,合并
            supplies[min]=supplies[min]+supplies[k];
            supplies[k]=0;
            length--;
        }

        //返回新车队数组
        int[] ans=new int[lengthA];
        j=0;
        for (int i = 0; i < lengthA&&j< supplies.length; i++,j++) {
            while (supplies[j]==0)
                j++;
            ans[i]=supplies[j];
        }
        return ans;
    }
}

过啦!
在这里插入图片描述
在这里插入图片描述

返回第一页。☝


☕物有本末,事有终始,知所先后。🍭

🍎☝☝☝☝☝我的CSDN☝☝☝☝☝☝🍓

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

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

相关文章

防晒服饰赛道持续加速扩容 未来行业集中度有望进一步提升

一、防晒服饰行业概述 国内防晒服饰市场主要包括具有防晒功能的衣服、伞具、帽子、墨镜、口罩、面罩、披肩、袖套及手套等产品。相比较防晒护肤品需要定时补涂、具有过敏风险、防晒效果欠佳以及消耗量大的缺陷&#xff0c;防晒服饰具有覆盖面广、使用方便、防晒效果好、对身体…

ChatGPT: 如何利用OpenAI的GPT-3.5构建智能对话助手

ChatGPT: 如何利用OpenAI的GPT-3.5构建智能对话助手 GPT-3.5&#xff1a;OpenAI的语言模型在自然语言处理领域的重要地位和应用潜力 GPT-3.5是OpenAI开发的一种强大的语言模型&#xff0c;具有广泛的应用潜力和在自然语言处理领域的重要地位。作为OpenAI最新一代的语言模型&…

初识C++之C++11

目录 一、C11的概念 二、统一的列表初始化 1.{ }初始化 2.initializer_list 三、decltype 四、lambda表达式 1. lambda表达式的出现原因 2. lambda表达式的使用 2.1 捕捉列表 2.2 参数列表 2.3 mutable 2.4 返回值类型 2.5 函数体 2.6 使用方式 3. lambda表达式…

c++积累11-强制类型转换运算符(static_cast/reinterpret_cast/const_cast/dynamic_cast)

1、背景 将类型名作为强制类型转换运算符的做法是C语言的老式做法&#xff0c;C为保持兼容而予以保留。强制类型转换是有一定风险的&#xff0c;C引入新的转换机制&#xff0c;主要为了客服C语言转换的三个缺点&#xff1b; 1、没有从形式上体现转换功能和风险的不同。 例如&a…

LeetCode特训 --- Week2 (主打滑动窗口 + 字符串匹配题目)

目录 滑动窗口原理 真懂了滑动窗口? 滑动 字符串细节 开干切题 滑动窗口原理 滑动窗口&#xff1a;维护一前一后两根指针, 或者说一左一右两个指针。更主要的是维护左右指针中的区间. 同时不断的向前滑动&#xff0c;直到整个序列滑动结束&#xff0c;前指针走到序列末尾…

总结:Grafana Mimir调用

一、背景 Prometheus单实例&#xff0c;可用性低&#xff0c;可靠性低&#xff0c;不能存储更多数据。 解决业务问题 如&#xff1a;当前QKE是一个集群一个项目一个prometheus实例&#xff0c;那么当我一个应用分多个集群部署的时候&#xff0c;查询数据时就得从三个promethe…

streamlit (python构建web可视化框架)笔记

文章目录 一、安装使用streamlit二、streamlit使用1.展示和数据样式2.dataframe()生成交互表和table()方法生成静态表3.绘制折线图4.绘制地图5.一些组件slider()滑动条 checkbox()确认框 selectbox()选择器6.侧边栏7.布局分列8.多页 三、Steamlit可视化简单应用--冒泡排序可视化…

java获取当前系统时间

在Java中&#xff0c;可以使用以下几种方法获取当前系统时间&#xff1a; 方法1&#xff1a;使用java.util.Date类 java import java.util.Date; public class Main { public static void main(String[] args) { Date date new Date(); System.out.println("当前时间&…

短视频app开发:如何设计个性化推荐算法

短视频app的迅速崛起已经成为了移动互联网领域中的一股热潮。然而&#xff0c;如何设计个性化推荐算法已经成为了这个领域中的一个核心问题。在本文中&#xff0c;我们将深入探讨如何为短视频app开发设计个性化推荐算法&#xff0c;以及如何使用短视频源码来实现这一目标。 简…

类间关系和内部类和数组

Final关键词 定义Pepole类&#xff0c;运用了final修饰方法eat()&#xff0c;该方法不能被改写&#xff0c;但可以随类进行继承。 用final修饰的类&#xff0c;不能有子类。 内部成员类定义方式 外部类.成员类 对象名 new 外部类&#xff08;&#xff09;.new 内部类。 局部…

[附源码]计算机毕业设计基于SSM和UNIAPP的选课APP

项目初衷 教育要实现现代化&#xff0c;高质量发展&#xff0c;就必须拥抱互联网。在此推动下&#xff0c;教育APP软件的开发非常受欢迎。通过APP自主选择教育课程的专业和课程&#xff0c;教授讲课&#xff0c;课程APP可以在线合作。通过APP自主选课的方式&#xff0c;更能激…

深度强化学习——actor-critic算法(4)

一、本文概要&#xff1a; actor是策略网络&#xff0c;用来控制agent运动&#xff0c;你可以把他看作是运动员&#xff0c;critic是价值网络&#xff0c;用来给动作打分&#xff0c;你可以把critic看作是裁判&#xff0c;这节课的内容就是构造这两个神经网络&#xff0c;然后…

项目结束倒数2

今天,解决了,多个点的最短路问题 用的dfs,配上了floyed计算出的广源距离 难点是要记录路线,dfs记录路线就很烦 但是好在结束了,经过无数的测试,确保没啥问题(应该把) 来看看我的代码 void dfs(int b[], int x, int* sum, int last, int sums, int a[], BFS& s, Floyd_A…

Java核心技术 卷1-总结-14

Java核心技术 卷1-总结-14 映射更新映射项弱散列映射链接散列集与映射枚举集与映射 视图与包装器轻量级集合包装器 映射 更新映射项 处理映射时的一个难点就是更新映射项。正常情况下&#xff0c;可以得到与一个键关联的原值&#xff0c;完成更新&#xff0c;再放回更新后的值…

【二叉树】遍历二叉树

前言 二叉树有前中后序和层序四种常用的遍历方式&#xff0c;今天我们来学习一下如何用这四种方法遍历二叉树。 前序&#xff1a;根、左、右 中序&#xff1a;左、右、根 后序&#xff1a;左、右、根 层序&#xff1a;第一层、第二层… 递归 递归是一种将复杂问题不断细分成…

RHCE(五)

目录 一.判断当前磁盘剩余空间是否有20G&#xff0c;如果小于20G&#xff0c;则将报警邮件发送给管理员&#xff0c;每天检查一次磁盘剩余空间 1.创建脚本test1.sh 2.下载邮件服务并执行 3.测试 4.做计划任务 二.判断web服务是否运行&#xff08;1、查看进程的方式判断该程…

ChatGPT 速通手册——模仿唐诗宋词,和模仿莎士比亚十四行诗的中英文差距

模仿唐诗宋词&#xff0c;和模仿莎士比亚十四行诗的中英文差距 根据前文介绍的三大反例特性&#xff0c;我们可以尝试给出几个典型的反例。比如诗词创作&#xff0c;尤其是长短句约束更加严格的词牌&#xff0c;对照反例特性&#xff1a; 有明确且唯一可行的标准定义——一个…

Windows OpenVino安装squeezenet1.1失败 —— 已解决

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,YOLO,python领域博主爱笑的男孩。擅长深度学习,YOLO,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typecollec…

【排序】冒泡排序与快速排序(三个版本+非递归图示详解哦)

全文目录 引言冒泡排序快速排序思路实现Hoare版本快排优化 挖坑法前后指针法 快排非递归版本思路实现 总结 引言 在这篇文章中&#xff0c;将继续介绍排序算法&#xff1a;冒泡排序与快速排序&#xff1a; 它们都属于交换排序&#xff0c;即通过两两比较交换&#xff0c;将较…

小朋友崇拜圈+灌溉(JAVA解法)

目录 小朋友崇拜圈 题目链接&#xff1a; 题目描述 输入描述 输出描述 输入输出样例 灌溉 题目链接&#xff1a; 题目描述 输入描述 输出描述 输入输出样例 小朋友崇拜圈 题目链接&#xff1a; https://www.lanqiao.cn/problems/182/learning/?page5&first_c…