代码随想录算法训练营29期|day34 任务以及具体任务
第八章 贪心算法 part03
- 1005.K次取反后最大化的数组和

class Solution {public int largestSumAfterKNegations(int[] nums, int K) {// 将数组按照绝对值大小从大到小排序,注意要按照绝对值的大小nums = IntStream.of(nums).boxed().sorted((o1, o2) -> Math.abs(o2) - Math.abs(o1)).mapToInt(Integer::intValue).toArray();int len = nums.length; for (int i = 0; i < len; i++) {//从前向后遍历,遇到负数将其变为正数,同时K--if (nums[i] < 0 && K > 0) {nums[i] = -nums[i];K--;}}// 如果K还大于0,那么反复转变数值最小的元素,将K用完if (K % 2 == 1) nums[len - 1] = -nums[len - 1];return Arrays.stream(nums).sum();} }思路:让绝对值最大的负数变为正数,如果负数都变为正数了,k还大于0,就把最小的正数反复×负号。
- 134. 加油站

// 解法2 class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int curSum = 0;int totalSum = 0;int index = 0;for (int i = 0; i < gas.length; i++) {curSum += gas[i] - cost[i];totalSum += gas[i] - cost[i];if (curSum < 0) {index = (i + 1) % gas.length ; curSum = 0;}}if (totalSum < 0) return -1;return index;} }思路:把每个点的存储或消耗的油量算出来,如果从一个点走到另一个点curSum<0,那么就从i+1出发,只要totalSum>0,总有一个点可以当出发点。
- 135. 分发糖果

class Solution {/**分两个阶段1、起点下标1 从左往右,只要 右边 比 左边 大,右边的糖果=左边 + 12、起点下标 ratings.length - 2 从右往左, 只要左边 比 右边 大,此时 左边的糖果应该 取本身的糖果数(符合比它左边大) 和 右边糖果数 + 1 二者的最大值,这样才符合 它比它左边的大,也比它右边大*/public int candy(int[] ratings) {int len = ratings.length;int[] candyVec = new int[len];candyVec[0] = 1;for (int i = 1; i < len; i++) {candyVec[i] = (ratings[i] > ratings[i - 1]) ? candyVec[i - 1] + 1 : 1;}for (int i = len - 2; i >= 0; i--) {if (ratings[i] > ratings[i + 1]) {candyVec[i] = Math.max(candyVec[i], candyVec[i + 1] + 1);}}int ans = 0;for (int num : candyVec) {ans += num;}return ans;} }思路:要把左右孩子分开比较,一起比较容易顾此失彼,而且!!要先从前往后,再从后往前,把最近更新的都利用上,从后往前更新时,要将原糖果数和candy[i+1]+1相比较,取满足条件的最大值。
相关文章:
代码随想录算法训练营29期|day34 任务以及具体任务
第八章 贪心算法 part03 1005.K次取反后最大化的数组和 class Solution {public int largestSumAfterKNegations(int[] nums, int K) {// 将数组按照绝对值大小从大到小排序,注意要按照绝对值的大小nums IntStream.of(nums).boxed().sorted((o1, o2) -> Math.ab…...
LeetCode 每日一题 2024/1/22-2024/1/28
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 1/22 670. 最大交换1/23 2765. 最长交替子数组1/24 2865. 美丽塔 I1/25 2859. 计算 K 置位下标对应元素的和1/26 2846. 边权重均等查询1/27 2861. 最大合金数1/28 365. 水壶…...
好用的学习与开发工具
1. 首推 UTools 官网地址 uTools官网 - 新一代效率工具平台 介绍 uTools 是一个极简、插件化的现代桌面软件,通过自由选配丰富的插件,打造得心应手的工具集合。 通过快捷键(默认 alt space )就可以快速呼出这个搜索框。你可…...
(自用)learnOpenGL学习总结-高级OpenGL-立方体贴图
ok终于来到了立方体贴图了,在这里面我们可以加入好看的天空包围盒,这样的画我们的背景就不再是黑色的了! 首先,立方体贴图和前面的sampler2D贴图一样,不过是6个2D组成的立方体而已。 那么为什么要把6个组合在一起呢&…...
【计算机网络】——TCP协议
📑前言 本文主要是【计算机网络】——传输层TCP协议的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句…...
sql优化的方法
目录 一、准备数据 1.1、创建表结构 1.2、创建存储过程 二、索引介绍 2.1、类型介绍 2.2、建立索引 2.3、建立复合索引 2.4、查看所有建立的索引 2.5、删除索引 三、EXPLAIN分析参数说明 四、SQL优化案例 4.1、避免使用SELECT * 4.2、慎用UNION关键字 4.4、避免使…...
C++ Qt开发:运用QJSON模块解析数据
Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QJson组件的实现对JSON文本的灵活解析…...
MySQL数据库基础合集
MySQL数据库基础合集 目录 MySQL数据库基础合集SQL关键字DDL关键字DML关键字DQL关键字DCL关键字约束关键字 SQL基础数据类型整数类型字符类型浮点类型时间类型 数据定义语言DDL1.查看数据库2.创建库3.删除库4.切换库5.创建表6.删除表7.查看表8.查看表属性9.插入列10.修改列11.设…...
oracle19.22的patch已发布
2024年01月16日,oracle发布了19.22的patch 具体patch如下 Reserved for Database - Do not edit or delete (Doc ID 19202401.9) 文档ID规则如下 19(版本)年份(202x)(季度首月01,04,07,10).9 往期patch no信息和下…...
HTML+CSS:3D轮播卡片
效果演示 实现了一个3D翻转的卡片动画,其中每个卡片都有不同的图片和不同的旋转角度。整个动画循环播放,无限次。整个页面的背景是一个占据整个屏幕的背景图片,并且页面内容被隐藏在背景图片之下。 Code <div class"container"…...
ES 分词器
概述 分词器的主要作用将用户输入的一段文本,按照一定逻辑,分析成多个词语的一种工具 什么是分词器 顾名思义,文本分析就是把全文本转换成一系列单词(term/token)的过程,也叫分词。在 ES 中,Ana…...
从0开始搭建若依微服务项目 RuoYi-Cloud(保姆式教程完结)
文章接上一章: 从0开始搭建若依微服务项目 RuoYi-Cloud(保姆式教程 一)-CSDN博客 四. 项目配置与启动 当上面环境全部准备好之后,接下来就是项目配置。需要将项目相关配置修改成当前相关环境。 数据库配置 新建数据库ÿ…...
Linux true/false区分
bash的数值代表和其它代表相反:0表示true;非0代表false。 #!/bin/sh PIDFILE"pid"# truenginx进程运行 falsenginx进程未运行 checkRunning(){# -f true表示普通文件if [ -f "$PIDFILE" ]; then# -z 字符串长度为0trueif [ -z &qu…...
一些著名的软件都用什么语言编写?
1、操作系统 Microsoft Windows :汇编 -> C -> C 备注:曾经在智能手机的操作系统(Windows Mobile)考虑掺点C#写的程序,比如软键盘,结果因为写出来的程序太慢,实在无法和别的模块合并&…...
外卖跑腿系统开发:构建高效、安全的服务平台
在当今快节奏的生活中,外卖跑腿系统的开发已成为技术领域的一个重要课题。本文将介绍如何使用一些常见的编程语言和技术框架,构建一个高效、安全的外卖跑腿系统。 1. 技术选择 在开始开发之前,我们需要选择适合的技术栈。常用的技术包括&a…...
【MQ02】基础简单消息队列应用
基础简单消息队列应用 在上一课中,我们已经学习到了什么是消息队列,有哪些消息队列,以及我们会用到哪个消息队列。今天,就直接进入主题,学习第一种,最简单,但也是最常用,最好用的消息…...
CTF CRYPTO 密码学-7
题目名称:敲击 题目描述: 让我们回到最开始的地方 0110011001101100011000010110011101111011011000110110010100110011011001010011010100110000001100100110001100101101001101000011100001100011001110010010110100110100011001000011010100110000…...
随机森林和决策树区别
随机森林(Random Forest)和决策树(Decision Tree)是两种不同的机器学习算法,其中随机森林是基于决策树构建的一种集成学习方法。以下是它们之间的主要区别: 决策树: 单一模型: 决策树是一种单一模型&#…...
新建VM虚拟机-安装centOS7-连接finalshell调试
原文 这里有问题 首先进入/etc/sysconfig/network-scripts/目录 cd /etc/sysconfig/network-scripts/ 然后编辑文件 ifcfg-ens33 vi ifcfg-ens33...
936. 戳印序列
Problem: 936. 戳印序列 文章目录 思路解题方法复杂度Code 思路 这道题目要求我们通过使用印章来印刷目标字符串,使得目标字符串最终变成全为’?‘的字符串。我们可以使用贪心的思想来解决这个问题。 首先,我们需要找到所有可以匹配印章的位置ÿ…...
OpenClaw权限最小化实践:Qwen3-4B文件操作沙盒环境配置
OpenClaw权限最小化实践:Qwen3-4B文件操作沙盒环境配置 1. 为什么需要沙盒环境? 去年我在尝试用OpenClaw自动整理项目文档时,曾遭遇过一次"灾难性"事故。当时我的脚本错误地将/usr/local/bin识别为文档目录,导致系统关…...
SecGPT-14B效果展示:输入YARA规则条件,AI生成正则匹配优化建议与误报规避
SecGPT-14B效果展示:输入YARA规则条件,AI生成正则匹配优化建议与误报规避 1. 引言:当AI遇见网络安全规则 想象一下,你是一名安全分析师,面对成千上万条日志,需要编写一条精准的YARA规则来捕捉一个新型恶意…...
OpenClaw镜像体验:Qwen3.5-9B云端沙盒快速入门
OpenClaw镜像体验:Qwen3.5-9B云端沙盒快速入门 1. 为什么选择云端沙盒体验OpenClaw? 第一次接触OpenClaw时,我被它"本地AI智能体"的定位所吸引——一个能在我的电脑上自动执行各种任务的开源框架。但当我真正开始尝试本地部署时&…...
Ostrakon-VL-8B多场景落地:药房药品陈列合规检查自动化方案
Ostrakon-VL-8B多场景落地:药房药品陈列合规检查自动化方案 1. 项目背景与价值 在零售药店日常运营中,药品陈列合规检查是一项重要但繁琐的工作。传统人工巡检方式存在效率低、标准不统一、记录不完整等问题。Ostrakon-VL-8B多模态大模型为解决这一问题…...
无需配置!TensorFlow-v2.15镜像一键部署,小白也能玩转深度学习
无需配置!TensorFlow-v2.15镜像一键部署,小白也能玩转深度学习 1. 为什么选择TensorFlow-v2.15镜像? 深度学习正在改变各行各业,但对于初学者来说,环境配置往往是第一道门槛。TensorFlow-v2.15镜像彻底解决了这个问题…...
SDMatte问题解决:抠图边缘不理想?试试调整框选范围
SDMatte问题解决:抠图边缘不理想?试试调整框选范围 1. 问题现象与原因分析 1.1 常见边缘问题表现 在使用SDMatte进行抠图时,用户可能会遇到以下几种边缘不理想的情况: 边缘锯齿:主体边缘出现明显的锯齿状不平滑细节…...
OpenClaw技能开发指南:为Phi-3-vision-128k-instruct定制多模态自动化流程
OpenClaw技能开发指南:为Phi-3-vision-128k-instruct定制多模态自动化流程 1. 为什么需要为特定模型开发OpenClaw技能? 去年夏天,我接手了一个数据分析项目,需要每周手动从上百张仪表盘截图里提取数字并整理成Excel报表。这种重…...
OpenClaw自动化测试:Qwen3.5-9B生成与执行Python脚本
OpenClaw自动化测试:Qwen3.5-9B生成与执行Python脚本 1. 为什么选择OpenClawQwen3.5做代码自动化 去年我在处理一个数据清洗项目时,每天要反复执行十几个相似的Python脚本。当我第一次看到OpenClaw的"自然语言生成代码自动执行"演示时&#…...
家庭照片管家:OpenClaw+Qwen3-32B自动识别人物与生成纪念册
家庭照片管家:OpenClawQwen3-32B自动识别人物与生成纪念册 1. 为什么需要自动化照片管理? 去年春节整理家庭照片时,我发现一个令人头疼的问题——10年间积累的3万多张照片杂乱地堆在硬盘里。想找一张孩子周岁照需要翻遍几十个文件夹&#x…...
.NET 高级开发 | 配置系统
配置和选项ASP.NET Core 模板项目下会有 appsettings.json、appsettings.Development.json 两个配置文件,我们可以通过这两个文件配置 Web 应用的启动端口、是否使用 https 等,大多数第三方框架也都支持在这两个 json 文件中配置。ASP.NET Core 程序默认…...
