leetcode 1774.最接近目標價格的甜點成本

思路:DFS暴力

今天就不整動態規劃了,腦子有點用不過來了。

這個題其實暴搜就行了,在暴搜之前,首先定下來初值,也就是冰淇凌的基地,我們一個一個遍歷就行了,然后挨個暴搜

這個DFS的類型是指數型遞歸,也就是選和不選的那種類型,但這里題型變了一下,無非就是多了一種選擇。

選擇有三個:不選,選一次,選兩次。

注意:在判斷dfs條件的時候,u>top.size()-1這一條一定是最后判定才可以,不能打亂順序,因為我們在遍歷到u-1,之后再往后遍歷就是u了,但是這個時候數值sum才加到top[u-1],也就是還在可控范圍之內的邊界,不能一下子就停了,如果放在開頭,就會誤判,少了最后邊界數值的判斷。需要在我們迭代完res這個變量之后再停止后面的遍歷,這樣才行。

還有,大家可能也發現了,為什么我沒有寫sum>=target的時候停止呢?因為沒有必要,我們可以舉個例子,假如target=10,你算出來有兩個接近target的數8和10,我們傾向于選擇成本小的那個一個。所以我在前面已經寫出了在這種可能性下的選擇,這樣的話sum>=target顯然多余了,沒有必要加進去,因為數值10也是被允許的,也是可以和別的數值進行比較的,這樣還是比較安全。

class Solution {
public:
int res=0x3f3f3f;
void dfs(int u,int sum,vector<int>&top,int target){if(abs(res-target)>abs(sum-target))res=sum;if(abs(res-target)==abs(sum-target))res=min(sum,res);if(u>top.size()-1)return;dfs(u+1,sum,top,target);dfs(u+1,sum+top[u],top,target);dfs(u+1,sum+2*top[u],top,target);}int closestCost(vector<int>& baseCosts, vector<int>& toppingCosts, int target) {for(int init:baseCosts){dfs(0,init,toppingCosts,target);}return res;}
};

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

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

相關文章

python tuple(元組)

python list&#xff08;列表&#xff09;、創建、訪問、內置index、判斷in、not in、添加元素、insert、append、extend、列表排序、顛倒順序、刪除元素、remove、pop、clear-CSDN博客 目錄 tuple&#xff1a; 元組的主要特點包括&#xff1a; tuple的創建 單個元組需要注…

C++和QML混合編程-C++訪問QML元素

QML在處理一些UI顯示的時候比較擅長,但當涉及到一些后臺業務的時候就比較乏力了。這里介紹一下如何通過C++對QML的能力進行擴展。C++訪問操作QML的方式主要分為兩種: 1.通過findChild查找QML子元素 2.通過QQmlComponent動態創建元素。 下面分別介紹一下兩種方式的詳細用法。…

測試用例篇

測試用例的基本要素 **測試用例是為了實施測試而向被測試的系統提供的一組集合&#xff0c;這組集合包含&#xff1a;測試環 **境、操作步驟、測試數據、預期結果等要素.評價測試用例的標準&#xff1a;**對比好壞用例的評價標準 **用例表達清楚&#xff0c;無二義性用例可操作…

Spring服務啟動后就執行某個方法

下邊按照執行順序前后&#xff0c;測試代碼結果截圖放到最后&#xff1a; 1、注解PostConstruct 時間&#xff1a;當前bean被創建并且所有的依賴注入完成之后執行&#xff1b; 使用&#xff1a;當前bean 所在類內的某個方法上 添加該注解&#xff1b;該方法沒有參數&#xf…

探索移動云服務:構建高效移動互聯網應用的最佳實踐

一、移動云服務簡介 官網&#xff1a;https://ecloud.10086.cn 移動云&#xff0c;或稱為移動云計算&#xff0c;是通過無線網絡向移動設備用戶提供云計算服務的技術。它使用戶能夠通過智能手機、平板電腦和筆記本電腦等各類移動設備&#xff0c;在任何時間、任何地點便捷地訪…

小程序怎么改名

經常有商家想要對自己的小程序進行重命名&#xff0c;改名可能是為了更好地與品牌形象以及業務相匹配&#xff0c;也可能是為了更好地吸引用戶。那么如何才能更名呢&#xff1f; 一、準備幾個新名字。 在決定改名之前&#xff0c;首先要確定幾個新的小程序名字。為什么要準備…

帝國CMS如何修改時間格式,變成幾分鐘,幾小時教程

該插件已經在帝國cms6.6上測試通過&#xff0c;至于其他版本&#xff0c;請自行測試。 目前支持&#xff1a;標簽模板&#xff0c;列表模板&#xff0c;內容模板 安裝說明&#xff1a; 把以下的內容復制到 /e/class/userfun.php 文件里&#xff08;放在<?php和?>之間…

自定義類型:結構體詳解

1.結構體 1.1 結構的基礎知識 結構是一些值的集合&#xff0c;這些值稱為成員變量。一個整型數組&#xff0c;它的每個數組元素只能是整型&#xff0c;字符型的數組它的每個元素只能是字符型。但是結構體的每個成員可以是各種不同類型的變量。 1.2結構的聲明 //聲明 struct t…

Excel如何換行不換格

在換行的字之間 按住Alt 回車

孜然多程序授權系統V2.0開源

源碼介紹 孜然一款多程序授權系統&#xff0c;支持自定義權限價格/新增程序配置等支持自動生成授權代碼在線簽到在線充值多支付接口IP/域名云黑文章系統&#xff08;富文本編輯器&#xff09;卡密功能一鍵云黑&#xff08;掛個大馬/一鍵黑頁/一鍵刪庫/一鍵刪源碼&#xff09; …

批處理作業調度問題 (回溯法)

目錄 一、問題解析 二、實例剖析 三、算法思路 四、代碼實現 結果&#xff1a; 總結 前言 【問題】n 個作業{1, 2, …, n}要在兩臺機器上處理&#xff0c;每個作業必須先由機器 1 處理&#xff0c;再由機器 2 處理&#xff0c;機器 1 處理作業i所需時間為 ai&#xff0c;…

【Linux-時間管理和內核定時器】

Linux-時間管理和內核定時器 ■ 設置系統節拍率■ 高節拍率和低節拍率的優缺點&#xff1a;■ jiffies 系統節拍數■ get_jiffies_64 這個函數可以獲取 jiffies_64 的值■ 處理繞回■ 使用 jiffies 判斷超時 ■ jiffies 和 ms、 us、 ns 之間的轉換函數在這里插入代碼片■ 內核…

QT常量中有換行符

頭文件添加&#xff1a; #pragma execution_character_set("utf-8")

隨筆之職場:追求技術悲慘之路

技術與職場的反思 作為一名擁有十幾年技術開發經驗的專業人士&#xff0c;我曾堅信技術能力的提升是職場成功的關鍵。我專注于WebGIS開發&#xff0c;不斷學習新技術&#xff0c;追求技術的深度和廣度。然而&#xff0c;隨著時間的推移&#xff0c;我逐漸意識到&#xff0c;技…

Java中的類加載器

類加載器 1.什么是類加載器&#xff1f; 啟動類加載器&#xff08;Bootstrap ClassLoader&#xff09;&#xff1a;這是JVM自帶的類加載器&#xff0c;負責加載Java的核心類庫&#xff0c;如rt.jar等。由于安全原因&#xff0c;啟動類加載器加載的類不能被其他類加載器加載的類…

數據庫(8)——DML數據操作

增添數據 給指定字段添加數據 INSERT INTO 表名 (字段名1&#xff0c;字段名2,...)VALUES(值1,值2...); 沒有的添加的字段默認為NULL。 給全部字段添加數據 INSERT INTO 表名 VALUE (值1,值2,....值n); 此時值的順序對應表中字段的順序 批量添加數據 INSERT INTO 表名(字段1,…

ssm143校園一卡通系統軟件的設計與實現+jsp

校園一卡通系統設計與實現 摘 要 現代經濟快節奏發展以及不斷完善升級的信息化技術&#xff0c;讓傳統數據信息的管理升級為軟件存儲&#xff0c;歸納&#xff0c;集中處理數據信息的管理方式。本校園一卡通系統就是在這樣的大環境下誕生&#xff0c;其可以幫助管理者在短時間…

聊聊變異測試

軟件質量保障 所寫即所思&#xff5c;一個阿里質量人對測試的所感所悟。 1. 介紹 有句話說&#xff1a;證實容易&#xff0c;證偽難。正如測試一樣&#xff0c;證明缺陷存在容易&#xff0c;但證明不存在缺陷難。而變異測試顛覆了這一原則&#xff0c;如果我們知道存在缺陷&am…

2024-5-26

今日安排&#xff1a; 后面還是按照安排來了&#xff0c;CTF 真不是我能玩的… 重新開始審計 nf_tables 源碼&#xff0c;并在審計的過程中復現歷史漏洞【 && iptables 相關學習】?????實驗報告 ?????復現 CTF 相關題目????學習 winpwn????mount 的…