day34貪心算法 part03

1005. K 次取反后最大化的數組和

簡單

給你一個整數數組 nums 和一個整數 k ,按以下方法修改該數組:

選擇某個下標 i 并將 nums[i] 替換為 -nums[i] 。
重復這個過程恰好 k 次。可以多次選擇同一個下標 i 。

以這種方式修改數組后,返回數組 可能的最大和 。
在這里插入圖片描述

class Solution {public int largestSumAfterKNegations(int[] nums, int k) {// 先按絕對值大到小排個序reverseAbsNms(nums);for (int i = 0; i < nums.length; i++) {//從前往后遍歷,遇到負數將其變為正數,同時K--if (nums[i] < 0 && k > 0) { // K > 0也是個很重要的條件nums[i] = -nums[i];k--;}}// 如果K還大于0,那么反復轉變數值最小的元素,將K用完if (k % 2 == 1) nums[nums.length - 1] = -nums[nums.length - 1];int sum = 0;for (int i = 0; i < nums.length; i++) {sum += nums[i];}return sum;}public void reverseAbsNms(int[] nums) {for (int i = 0; i < nums.length - 1; i++) {for (int j = 0; j < nums.length - i - 1; j++) {if (Math.abs(nums[j]) < Math.abs(nums[j + 1])) { // 是j不是i !!!int temp = nums[j];nums[j] = nums[j + 1];nums[j + 1] = temp; }}}}
}

134. 加油站

中等
在一條環路上有 n 個加油站,其中第 i 個加油站有汽油 gas[i] 升。

你有一輛油箱容量無限的的汽車,從第 i 個加油站開往第 i+1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發,開始時油箱為空。

給定兩個整數數組 gas 和 cost ,如果你可以按順序繞環路行駛一周,則返回出發時加油站的編號,否則返回 -1 。如果存在解,則 保證 它是 唯一 的。

難點:總油量減去總消耗大于等于零為什么一定可以跑完一圈?i如果無法到j的話,那么i和j之間的點也無法到達j的理論,推不出來就背吧

class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int n = gas.length;// 考慮從每一個點出發 for (int start = 0; start < n; ) {if (gas[start] < cost[start]) {start++; // 這個點連到下一個點都做不到,換個點繼續試} else {int remain = gas[start] - cost[start];int idx = start + 1;while (idx % n != start) {remain += gas[idx % n] - cost[idx % n];if (remain < 0) {break;}idx++; }if (idx % n == start) {return start;} else {start = idx; // 就是那個i如果無法到j的話,那么i和j之間的點也無法到達j的理論,推不出來就背吧}}}// 任何點都不可以return -1;}
}

135. 分發糖果

困難
n 個孩子站成一排。給你一個整數數組 ratings 表示每個孩子的評分。

你需要按照以下要求,給這些孩子分發糖果:

每個孩子至少分配到 1 個糖果。
相鄰兩個孩子評分更高的孩子會獲得更多的糖果。
請你給每個孩子分發糖果,計算并返回需要準備的 最少糖果數目 。
在這里插入圖片描述在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

/*
分兩個階段
1、起點下標1 從左往右,只要 右邊 比 左邊 大,右邊的糖果=左邊 + 1
2、起點下標 ratings.length - 2 從右往左, 只要左邊比右邊大,此時 
左邊的糖果應該 取本身的糖果數(符合比它左邊大) 和 右邊糖果數 + 1 二者的最大值,
這樣才符合 它比它左邊的大,也比它右邊大*/
class Solution {public int candy(int[] ratings) {int[] candyNums = new int[ratings.length];Arrays.fill(candyNums, 1);// 從前向后for (int i = 1; i < ratings.length; i++) {// 右比左大if (ratings[i] > ratings[i - 1]) candyNums[i] = candyNums[i - 1] + 1;}// 從后向前 int result = candyNums[ratings.length - 1];for (int i = ratings.length - 2; i >= 0; i--) {// 左比右大if (ratings[i] > ratings[i + 1]) {// 取本身的糖果數(符合比它左邊大) 和 右邊糖果數 + 1 二者的最大值,//這樣才符合 它比它左邊的大,也比它右邊大candyNums[i] = Math.max(candyNums[i], candyNums[i + 1] + 1);}result += candyNums[i];}return result;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719510.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719510.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719510.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

力扣棧隊列篇

以下思路來自代碼隨想錄以及官方題解。 文章目錄 232.用棧實現隊列225.用隊列實現棧20.有效的括號1047.刪除字符串中所有相鄰重復項150.逆波蘭表達式求值347.前K個高頻元素 232.用棧實現隊列 請你僅使用兩個棧實現先入先出隊列。隊列應當支持一般隊列支持的所有操作&#xff…

OSError: [WinError 1455] 頁面文件太小,無法完成操作。

[問題描述]&#xff1a;OSError: [WinError 1455] 頁面文件太小&#xff0c;無法完成操作。 原因1&#xff1a;線程數太大 方法&#xff1a;改小線程&#xff08;workers&#xff09;數。 原因2&#xff1a;虛擬內存太小或為0&#xff0c;調大虛擬內存。 方法&#xff1a;右鍵…

mysql索引過長Specialed key was too long的解決方法

在創建要給表的時候遇到一個有意思的問題&#xff0c;提示Specified key was too long; max key length is 767 bytes&#xff0c;從描述上來看&#xff0c;是Key太長&#xff0c;超過了指定的 767字節限制。通常出現在嘗試創建一個過長的唯一鍵&#xff08;UNIQUE KEY&#xf…

Vue.js 實用技巧:深入理解 Vue.mixin

&#x1f90d; 前端開發工程師、技術日更博主、已過CET6 &#x1f368; 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 &#x1f560; 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》 &#x1f35a; 藍橋云課簽約作者、上架課程《Vue.js 和 E…

uniapp真機運行的時候顯示同步資源失敗,未得到同步資源的授權,請停止運行后重新運行,并注意手機上的授權提示

1、問題 在添加清單文件之前&#xff0c;項目運行都是好好的&#xff0c;添加了清單項目以后&#xff0c;基座一打就報這個錯&#xff0c;并且手機在安裝基座的時候會提示解析包時失敗&#xff0c; 2、解決方案 打開我的清單文件&#xff0c;我發現我和官網寫的清單文件不一…

華為OD機試“HJ2計算某字符出現次數”不區分大小寫Java編程解答

描述 寫出一個程序&#xff0c;接受一個由字母、數字和空格組成的字符串&#xff0c;和一個字符&#xff0c;然后輸出輸入字符串中該字符的出現次數。&#xff08;不區分大小寫字母&#xff09; 數據范圍&#xff1a; 1≤n≤1000 輸入描述&#xff1a; 第一行輸入一個由字…

【Linux進程間通信】共享內存

【Linux進程間通信】共享內存 目錄 【Linux進程間通信】共享內存system V共享內存共享內存示意圖共享內存的數據結構共享內存函數將共享內存掛接到對應的進程將共享內存取消掛接釋放共享內存 共享內存的特性共享內存擴展共享內存配合管道進行使用 作者&#xff1a;愛寫代碼的剛…

用docker部署后端項目

一、搭建局域網 1.1、介紹前后端項目搭建 需要4臺服務器&#xff0c;在同一個局域網中 1.2、操作 # 搭建net-ry局域網&#xff0c;用于部署若依項目 net-ry&#xff1a;名字 docker network create net-ry --subnet172.68.0.0/16 --gateway172.68.0.1#查看 docker network ls…

Git 安全遠程訪問:SSH 密鑰對生成、添加和連接步驟解析

使用 SSH 密鑰對的 Git 安全遠程訪問&#xff1a;生成、添加和連接 SSH&#xff08;Secure Shell&#xff09;是一種用于安全遠程訪問的協議&#xff0c;它提供了加密通信和身份驗證機制。在使用 SSH 連接到遠程 Git 存儲庫時&#xff0c;您可以使用 SSH 密鑰對來確保安全性。…

3d模型合并后一片漆黑是什么原因,怎么解決---模大獅模型網

當合并多個3D模型后&#xff0c;發現整個合并后的模型顯示為一片漆黑通常是由以下幾個可能的原因導致的&#xff1a; 材質設置問題&#xff1a;合并后的模型可能存在材質設置錯誤&#xff0c;導致模型無法正確顯示。檢查每個模型的材質屬性&#xff0c;確保其正確設置&#xff…

老隋藍海項目有哪些?能賺錢嗎?

在創業的海洋中&#xff0c;每個人都渴望找到那片屬于自己的“藍海”&#xff0c;而“老隋藍海項目”便是許多人心中的那片未知海域。那么&#xff0c;老隋藍海項目究竟是指什么?它們又能否成為創業者的新財富之源? 藍海項目的定義 我們要明白&#xff0c;藍海項目通常指的是…

【漏洞復現】某廠商明御WEB應用防火墻任意用戶登錄漏洞

Nx01 產品簡介 安恒明御WEB應用防火墻&#xff08;簡稱WAF&#xff09;是杭州安恒信息技術股份有限公司自主研發的一款專業應用安全防護產品&#xff0c;專注于為網站、APP等Web業務系統提供安全防護。 Nx02 漏洞描述 安恒明御WEB應用防火墻report.php文件存在硬編碼設置的Con…

yolov7添加spd-conv注意力機制

一、spd-conv是什么&#xff1f; SPD-Conv&#xff08;Symmetric Positive Definite Convolution&#xff09;是一種新穎的卷積操作&#xff0c;它主要應用于處理對稱正定矩陣&#xff08;SPD&#xff09;數據。在傳統的卷積神經網絡&#xff08;CNN&#xff09;中&#xff0c;…

人工智能_大模型013_AIGC生成式模型的增強檢索_RAG知識補充檢索_補充私域和實時場景知識_關鍵字檢索增強---人工智能工作筆記0149

什么是RAG,RAG的意思就是,如果一套生成式AIGC大模型,你昨天訓練了以后,那么今天的知識,還沒有給他進行訓練,那么回答的時候,他就會遺漏今天的知識,那么我們就可以通過檢索的手段,把今天的知識,檢索出來,然后補充道prompt中,給這個大模型.讓他參考,這樣就包含了今天的知識相當于…

CY8C42(1.PSoC4 Pioneer Kit開箱及基本使用)

1.開箱 最近了解到賽普拉斯有一種芯片&#xff0c;屬于PSoC系列&#xff0c;與傳統MCU不同&#xff0c;有點類似跨界芯片&#xff0c;于是就買來玩玩了&#xff0c;老實說用完還是很特別的&#xff0c;因為我沒有用過FPGA&#xff0c;不確定是不是FPGA的開發流程&#xff08;有…

怎樣理解vue2和vue3里的雙向數據綁定

在 Vue.js 中&#xff0c;雙向數據綁定意味著當數據變化時&#xff0c;視圖會自動更新&#xff1b;反之&#xff0c;當用戶通過視圖交互導致數據變化時&#xff0c;數據本身也會被更新。這種機制極大地簡化了用戶界面和數據之間的同步過程。 1. Vue2的實現 Vue2使用的是Objec…

MySQL的事務與隔離級別

1. 什么是事務&#xff1f; 數據庫中的事務是指對數據庫執行一批操作&#xff0c;而這些操作最終要么全部執行成功&#xff0c;要么全部失敗&#xff0c;不會存在部分成功的情況。這個時候就需要用到事務。 最經典的例子就是轉賬&#xff0c;你要給朋友小白轉 1000 塊錢&…

一代傳奇宗慶后:把員工寵成上帝

作者&#xff1a;積溪 琥珀酒研社快評&#xff1a; 梅子真是哭了 一代傳奇就此隕落 咱們又少了一個良心企業家 2月25日10時30分 娃哈哈集團創始人、董事長宗慶后 在杭州逝世&#xff0c;享年79歲 在過去一個多月的病危期間 他的病房里最顯眼的 不是呼吸機、檢測儀 而…

智慧城市中的公共服務創新:讓城市生活更便捷

目錄 一、引言 二、智慧城市公共服務創新的實踐 1、智慧交通系統 2、智慧醫療服務 3、智慧教育系統 4、智慧能源管理 三、智慧城市公共服務創新的挑戰 四、智慧城市公共服務創新的前景 五、結論 一、引言 隨著信息技術的迅猛發展&#xff0c;智慧城市已成為現代城市發…

技術總結: PPT繪圖

目錄 寫在前面參考文檔技巧總結PPT中元素的連接立方體調整厚度調整圖形中的文本3D 圖片調整漸變中的顏色 寫在前面 能繪制好一個好看的示意圖非常重要, 在科研和工作中好的示意圖能精準表達出自己的想法, 減少溝通的成本, 可視化的呈現也可以加強自身對系統的理解, 時間很久后…