面試經典150題(14)

leetcode 150道題 計劃花兩個月時候刷完,今天(第五天)完成了1道(14)150:
14. (134. 加油站)題目描述:

在一條環路上有 n 個加油站,其中第 i 個加油站有汽油 gas[i] 升。
你有一輛油箱容量無限的的汽車,從第 i 個加油站開往第 i+1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發,開始時油箱為空。
給定兩個整數數組 gas 和 cost ,如果你可以按順序繞環路行駛一周,則返回出發時加油站的編號,否則返回 -1 。如果存在解,則 保證 它是 唯一 的。

第一版(暴力求解,超時了,好難啊,想不到題解里面的想法。。垃圾暴力求解我就不放這了,放一下吧暴力求解也寫了好一會。。。)

class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int gasAmount=0;int costAmount=0;int len=gas.length;int[] amount=new int[len];for(int i=0;i<len;i++){gasAmount+=gas[i];costAmount+=cost[i];amount[i]=gas[i]-cost[i];}if(gasAmount<costAmount){return -1;}for(int i=0;i<len;i++){if(amount[i]>=0){int res=canGo(amount,i);if(res!=-1)return i;}}return -1;   }public int canGo(int[] amount, int index){int len=amount.length;int temp=index;int sum=amount[temp++];temp=temp%len;while(temp!=index){if(sum<0){return -1;}sum+=amount[temp++];temp=temp%len;}return index;}
}

第二版(看的題解,說實話官方給的題解是真的看不懂 還得是評論區的通俗易懂,總結就是,找gas[i]-cost[i] 和的最小值,然后最小值的下一個就是答案,一臉懵逼的我)

class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int gasAmount=0;int costAmount=0;int len=gas.length;int[] amount=new int[len];for(int i=0;i<len;i++){gasAmount+=gas[i];costAmount+=cost[i];if(i==0)amount[i]=gas[i]-cost[i];else{amount[i]=amount[i-1]+gas[i]-cost[i];}}if(gasAmount<costAmount){return -1;}// 找最小的int minValue=Integer.MAX_VALUE;int minIndex=-1;for(int i=0;i<len;i++){if(amount[i]<minValue){minValue=amount[i];minIndex=i;}}// 這個說是與一個案例有 bug 所以要加上這一句。。if(minValue>=0)  return 0;return (minIndex+1)%len;}
}

早日跳槽,明天好好刷,今天周一加上周日失眠了,各種debuff加滿了。。。跳槽、跳槽!

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

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

相關文章

<JavaEE> 鎖進階 -- synchronized 的鎖優化

目錄 一、如何形容 synchronized 鎖 二、鎖升級 2.1 偏向鎖 2.2 輕量級鎖 2.3 重量級鎖 三、鎖消除 四、鎖粗化 一、如何形容 synchronized 鎖 synchronized 鎖是一個內部優化非常好的鎖&#xff0c;大部分情況下這個鎖都是適用的。在初始階段 synchronized 是一個樂觀…

分布式搜索引擎02

分布式搜索引擎02 在昨天的學習中&#xff0c;我們已經導入了大量數據到elasticsearch中&#xff0c;實現了elasticsearch的數據存儲功能。但elasticsearch最擅長的還是搜索和數據分析。 所以今天&#xff0c;我們研究下elasticsearch的數據搜索功能。我們會分別使用DSL和Res…

react面試總結2

redux中sages和thunk中間件的區別&#xff0c;優缺點 Redux 中的 redux-saga 和 redux-thunk 都是中間件&#xff0c;用于處理異步操作&#xff0c;但它們有一些區別。 Redux Thunk&#xff1a; 簡單易用&#xff1a;redux-thunk 是比較簡單直觀的中間件&#xff0c;它允許 …

手撕分布式緩存---HTTP Server搭建

經過了前兩個章節的學習&#xff0c;分布式緩存的存儲與新增我們已經實現了&#xff0c;并且對其做了高可用處理。本章節我們剝離和緩存強相關的邏輯&#xff0c;開始搭建一個HTTP服務器&#xff0c;畢竟緩存數據庫搭建完之后別人沒法訪問也是沒有用處的。這一章節我們重點學習…

ElasticSearch應用場景以及技術選型[ES系列] - 第496篇

歷史文章&#xff08;文章累計490&#xff09; 《國內最全的Spring Boot系列之一》 《國內最全的Spring Boot系列之二》 《國內最全的Spring Boot系列之三》 《國內最全的Spring Boot系列之四》 《國內最全的Spring Boot系列之五》 《國內最全的Spring Boot系列之六》 M…

PDF控件Spire.PDF for .NET【轉換】演示:將 PDF 轉換為 Excel

PDF是一種通用的文件格式&#xff0c;但它很難編輯。如果您想修改和計算PDF數據&#xff0c;將PDF轉換為Excel將是一個理想的解決方案。在本文中&#xff0c;您將了解如何使用Spire.PDF for .NET在 C# 和 VB.NET 中將 PDF 轉換為 Excel。 Spire.Doc 是一款專門對 Word 文檔進行…

【華為數據之道學習筆記】3-10元數據管理架構及策略

元數據管理架構包括產生元數據、采集元數據、注冊元數據和運 維元數據。 產生元數據&#xff1a; 制定元數據管理相關流程與規范的落地方案&#xff0c;在IT產品開發過程中實現業務元數據與技術元數據的連接。 采集元數據&#xff1a; 通過統一的元模型從各類IT系統中自動采集元…

多線程(初階九:線程池)

目錄 一、線程池的由來 二、線程池的簡單介紹 1、ThreadPoolExecutor類 &#xff08;1&#xff09;核心線程數和最大線程數&#xff1a; &#xff08;2&#xff09;保持存活時間和存活時間的單位 &#xff08;3&#xff09;放任務的隊列 &#xff08;4&#xff09;線程工…

Axure的安裝以及簡單使用

目錄 Axure簡介 是什么 有什么用 Axure的優缺點 優點&#xff1a; 缺點&#xff1a; 安裝 漢化 Axure的使用 工具欄 頁面 ?編輯 添加子頁面 ?編輯 Axure簡介 是什么 Axure是一款著名的原型設計工具。它允許用戶創建交互式線框圖、流程圖、原型和其他設計文檔&…

「Verilog學習筆記」脈沖同步電路

專欄前言 本專欄的內容主要是記錄本人學習Verilog過程中的一些知識點&#xff0c;刷題網站用的是牛客網 timescale 1ns/1nsmodule pulse_detect(input clk_fast , input clk_slow , input rst_n ,input data_in ,output dataout );reg data_level, dat…

第十一章 React 封裝自定義組件

一、專欄介紹 &#x1f30d;&#x1f30d; 歡迎加入本專欄&#xff01;本專欄將引領您快速上手React&#xff0c;讓我們一起放棄放棄的念頭&#xff0c;開始學習之旅吧&#xff01;我們將從搭建React項目開始&#xff0c;逐步深入講解最核心的hooks&#xff0c;以及React路由、…

【NLP】RAG 應用中的調優策略

? 檢索增強生成應用程序的調優策略 沒有一種放之四海而皆準的算法能夠最好地解決所有問題。 本文通過數據科學家的視角審視檢索增強生成&#xff08;RAG&#xff09;管道。它討論了您可以嘗試提高 RAG 管道性能的潛在“超參數”。與深度學習中的實驗類似&#xff0c;例如&am…

關于jinja2高版本api變化導致notebook導出html失敗的問題

最新jinja2版本已經到了3.1.2&#xff0c;但是nbconvert引用的應該是老版本&#xff0c;具體代碼報錯如下 Type "help", "copyright", "credits" or "license" for more information. >>> import nbconvert Traceback (most…

spark從表中采樣(隨機選取)一定數量的行

在Spark SQL中&#xff0c;你可以使用TABLESAMPLE來按行數對表進行采樣。以下是使用TABLESAMPLE的示例&#xff1a; SELECT * FROM table_name TABLESAMPLE (1000 ROWS);在這個示例中&#xff0c;table_name是你要查詢的表名。TABLESAMPLE子句后面的(1000 ROWS)表示采樣的行數…

axios 基礎的 一次封裝 二次封裝

一、平常axios的請求發送方式 修改起來麻煩的一批 代碼一大串 二、axios的一次封裝 我們會在src/utils創建一個request.js的文件來存放我們的基地址與攔截器 /* 封裝axios用于發送請求 */ import axios from axios/* (1)request 相當于 Axios 的實例對象 (2)為什么要有reque…

VSCode使用Remote-SSH連接服務器時報錯:無法與“***”建立連接: XHR failed.

關于VSCode的報錯問題&#xff1a;無法與“***”建立連接: XHR failed 問題描述問題理解解決方法手動在本地下載安裝包&#xff0c;然后手動傳到服務器端 問題描述 是的&#xff0c;我又踩坑了&#xff0c;而且這個弄了好久&#xff0c;也重新裝了VSCode軟件&#xff0c;好像結…

2024黑龍江省職業院校技能大賽暨國賽選拔賽“GZ031應用軟件系統開發”賽項賽題題庫

2024黑龍江省職業院校技能大賽暨國賽選拔賽 “GZ031應用軟件系統開發”賽項賽題題庫 2024黑龍江省職業院校技能大賽暨國賽選拔賽 應用軟件系統開發賽項&#xff08;高職組&#xff09; 賽題第1套 目錄 競賽說明 模塊一&#xff1a;系統需求分析 任務1&#xff1a;制造執行…

Kotlin之for循環的具體使用說明

我們用java進行Android開發過程中&#xff0c;經常會用到for循環&#xff0c;在Kotlin中也會經常用到&#xff0c;但是在最近使用Kotlin中我發現&#xff0c;在java中使用for循環不會有什么問題&#xff0c;但是在Kotlin中會出現問題&#xff0c;就是循環出出來的結果不一樣&am…

前端框架(Front-end Framework)和庫(Library)的區別

聚沙成塔每天進步一點點 ? 專欄簡介 前端入門之旅&#xff1a;探索Web開發的奇妙世界 歡迎來到前端入門之旅&#xff01;感興趣的可以訂閱本專欄哦&#xff01;這個專欄是為那些對Web開發感興趣、剛剛踏入前端領域的朋友們量身打造的。無論你是完全的新手還是有一些基礎的開發…

阿里云國際版CDN加速,如何判斷網站IP已加速?

將源站接入阿里云CDN服務后&#xff0c;您可以通過IP檢測功能&#xff0c;檢測客戶端請求實際訪問的IP是否為CDN加速節點IP&#xff0c;判斷加速是否生效。 應用場景 IP檢測的應用場景如下&#xff1a; 場景一&#xff1a;成功配置CDN后&#xff0c;您可以檢測客戶端請求實際…