【LeetCode】挑戰100天 Day12(熱題+面試經典150題)

【LeetCode】挑戰100天 Day12(熱題+面試經典150題)

  • 一、LeetCode介紹
  • 二、LeetCode 熱題 HOT 100-14
    • 2.1 題目
    • 2.2 題解
  • 三、面試經典 150 題-14
    • 3.1 題目
    • 3.2 題解

一、LeetCode介紹

在這里插入圖片描述
LeetCode是一個在線編程網站,提供各種算法和數據結構的題目,面向程序員、計算機科學專業學生和技術愛好者等人群,旨在幫助他們提高算法和編程技能。LeetCode上的問題通常來自各種技術公司的面試題目,因此它也是程序員面試準備的重要資源之一。

LeetCode上的問題涵蓋了各種難度級別,從入門級到專家級都有不同難度的題目可供練習。用戶可以選擇使用不同的編程語言提交答案,LeetCode能夠對結果進行評估并返回測試結果。

除了題目外,LeetCode還提供了討論區、排行榜等社區功能,用戶可以在這里交流學習心得、解決疑難問題,并與其他用戶比較自己的做題成績。

挑戰100天 AI In LeetCode是基于LeetCode題庫,借助AI的能力進行解題、并學習其解題過程。

二、LeetCode 熱題 HOT 100-14

2.1 題目

最長公共前綴

編寫一個函數來查找字符串數組中的最長公共前綴。如果不存在公共前綴,返回空字符串 ""。示例 1:輸入:strs = ["flower","flow","flight"]
輸出:"fl"
示例 2:輸入:strs = ["dog","racecar","car"]
輸出:""
解釋:輸入不存在公共前綴。提示:1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 僅由小寫英文字母組成

2.2 題解

解題思路:

我們可以將字符串數組中的第一個字符串作為基準字符串,然后逐個比較每個字符串的前綴是否與基準字符串相同,如果不同則縮短基準字符串的長度,一直到找到公共前綴為止。

具體實現步驟如下:

  1. 判斷輸入的字符串數組是否為空或長度是否為0,若是則返回空字符串。
  2. 將字符串數組中的第一個字符串賦值給一個變量 prefix。
  3. 遍歷字符串數組中的每個字符串,比較該字符串與 prefix 的公共前綴,如果不匹配,則將 prefix 的長度縮短,繼續比較,直到找到公共前綴或 prefix 變為空字符串。
  4. 返回 prefix。
public class Solution {public String longestCommonPrefix(String[] strs) {if (strs == null || strs.length == 0) {return "";}String prefix = strs[0];for (int i = 1; i < strs.length; i++) {while (strs[i].indexOf(prefix) != 0) {prefix = prefix.substring(0, prefix.length() - 1);if (prefix.isEmpty()) {return "";}}}return prefix;}
}

在這里插入圖片描述

三、面試經典 150 題-14

數組 / 字符串

3.1 題目

加油站

在一條環路上有 n 個加油站,其中第 i 個加油站有汽油 gas[i] 升。你有一輛油箱容量無限的的汽車,從第 i 個加油站開往第 i+1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發,開始時油箱為空。給定兩個整數數組 gas 和 cost ,如果你可以按順序繞環路行駛一周,則返回出發時加油站的編號,否則返回 -1 。如果存在解,則 保證 它是 唯一 的。示例 1:輸入: gas = [1,2,3,4,5], cost = [3,4,5,1,2]
輸出: 3
解釋:3 號加油站(索引為 3)出發,可獲得 4 升汽油。此時油箱有 = 0 + 4 = 4 升汽油
開往 4 號加油站,此時油箱有 4 - 1 + 5 = 8 升汽油
開往 0 號加油站,此時油箱有 8 - 2 + 1 = 7 升汽油
開往 1 號加油站,此時油箱有 7 - 3 + 2 = 6 升汽油
開往 2 號加油站,此時油箱有 6 - 4 + 3 = 5 升汽油
開往 3 號加油站,你需要消耗 5 升汽油,正好足夠你返回到 3 號加油站。
因此,3 可為起始索引。
示例 2:輸入: gas = [2,3,4], cost = [3,4,3]
輸出: -1
解釋:
你不能從 0 號或 1 號加油站出發,因為沒有足夠的汽油可以讓你行駛到下一個加油站。
我們從 2 號加油站出發,可以獲得 4 升汽油。 此時油箱有 = 0 + 4 = 4 升汽油
開往 0 號加油站,此時油箱有 4 - 3 + 2 = 3 升汽油
開往 1 號加油站,此時油箱有 3 - 3 + 3 = 3 升汽油
你無法返回 2 號加油站,因為返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。
因此,無論怎樣,你都不可能繞環路行駛一周。提示:gas.length == n
cost.length == n
1 <= n <= 105
0 <= gas[i], cost[i] <= 104

3.2 題解

解題思路:

可以使用一個變量來跟蹤當前剩余的油量,以及另一個變量來跟蹤從起始加油站到當前加油站的總油量差值。具體步驟如下:

  1. 初始化兩個變量:start 表示起始加油站的索引,total 表示累計的油量與消耗量之差。
  2. 初始化 currGas 和 totalGas 為 0。
  3. 遍歷加油站數組 gas 和消耗數組 cost,對于每個加油站 i:
    • 將 currGas 加上 gas[i] - cost[i],表示到達該加油站后剩余的油量與消耗量之差。
    • 將 totalGas 加上 gas[i] - cost[i],表示從起始加油站到當前加油站的總油量差值。
    • 如果 currGas 小于 0,則將 start 設為下一個加油站的索引,并將 currGas 清零。
  4. 遍歷結束后,判斷 totalGas 的值是否小于 0,如果是則返回 -1,否則返回 start。
public class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int start = 0; // 起始加油站的索引int currGas = 0; // 當前剩余的油量int totalGas = 0; // 從起始加油站到當前加油站的總油量差值for (int i = 0; i < gas.length; i++) {currGas += gas[i] - cost[i];totalGas += gas[i] - cost[i];if (currGas < 0) {start = i + 1;currGas = 0;}}// 判斷是否可以繞環路行駛一周if (totalGas < 0) {return -1;} else {return start;}}
}

在這里插入圖片描述

至此,挑戰100天 AI In LeetCode Day12(熱題+面試經典150題)完成,后續會持續調整;查閱過程中若遇到問題歡迎留言或私信交流。

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

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

相關文章

HTTP客戶端警告:Going to buffer response body of large or unknown size

HTTP客戶端警告&#xff1a;Going to buffer response body of large or unknown size 點關注不迷路&#xff0c;歡迎再訪&#xff01; 精簡博客內容&#xff0c;盡量已行業術語來分享。 努力做到對每一位認可自己的讀者負責。 幫助別人的同時更是豐富自己的良機。 目錄 HTTP客…

IAR為恩智浦S32M2提供全面支持,提升電機控制能力

IAR Embedded Workbench for Arm已全面支持恩智浦最新的S32系列&#xff0c;可加速軟件定義汽車的車身和舒適性應用的開發 瑞典烏普薩拉&#xff0c;2023年11月22日 – 嵌入式開發軟件和服務的全球領導者IAR現已全面支持恩智浦半導體&#xff08;NXP Semiconductors&#xff0…

python腳本后臺執行

nohup python script.py &

CMS垃圾收集器深入解析

1.CMS的兩種模式與一種特殊策略 1.1Backgroud CMS(沒有并發失敗的情況) 1.1.1并發標記還能被整理成兩個流程 (1)初始標記 (2)并發標記(3)(4)在這個階段發生(3)并發預處理 (4)可中止的預處理 (5)重新標記 (6)并發清除 1.1.2為什么我們的并發標記細化之后還會額外有兩個流…

【pandas數據處理】數據結構

數據結構 Series基于列表創建數據結構自定義元素的行標簽基于字典創建數據結構 DataFrame對象基于列表創建數據結構設置參數來定義行列標簽基于字典 Series 一維數組對象&#xff0c;不僅包含數據元素&#xff0c;還包含一組與數據元素對應的行標簽。 基于列表創建數據結構 …

C++設計模式之工廠模式(下)——抽象工廠模式

抽象工廠模式 介紹示例示例使用運行結果抽象工廠模式的優缺點優點缺點 總結 介紹 抽象工廠模式是一種創建型設計模式&#xff0c;它提供了一種封裝一組相關或相互依賴對象的方式&#xff0c;而無需指定它們具體的類。它允許客戶端使用抽象接口來創建一系列相關的對象&#xff…

Jquery ajax 同步阻塞引起的UI線程阻塞的坑(loading圖片顯示不出來 )

Jquery ajax 同步阻塞引起的UI線程阻塞的坑&#xff08;loading圖片顯示不出來&#xff0c;layer.load延遲&#xff09;jax重新獲取數據刷新頁面功能&#xff0c;因為ajax屬于耗時操作&#xff0c;想在獲取數據且加載頁面時顯示加載遮罩層&#xff0c;結果發現了ajax的好多坑。…

Elasticsearch自動清理腳本

腳本 我在data下創建的腳本文件就叫:vi /data/clear_log.sh,內容如下 #!/bin/sh #獲取時間 time=`date +%Y-%m-%d %H:%M:%S` cipan=`df -h| grep sda3` #查詢磁盤使用率 liang=`df -h| grep sda3 |grep -v grep |awk {print $5}|tr -d

【數據結構】一題帶你出師鏈表!

&#x1f984;個人主頁:修修修也 &#x1f38f;所屬專欄:數據結構 ??操作環境:Visual Studio 2022 題目鏈接 138. 隨機鏈表的復制https://leetcode.cn/problems/copy-list-with-random-pointer/ 題目描述 給你一個長度為 n 的鏈表&#xff0c;每個節點包含一個額外增加的隨機…

Make a BESD file from QTLtools output

Make a BESD file from QTLtools output # 根據基因名與變異rsid編號去重 library(tidyverse) library(readxl) qtltoolsnomi <- read_table("qtltoolsnomi.txt",col_names F) qtltoolsnomi %>% distinct(X1,X8, .keep_all TRUE) -> qtltool qtltool …

qml ParticleSystem3D使用介紹

在 Qt Quick 3D 中,ParticleSystem3D 是用來創建和控制3D粒子系統的元素。粒子系統是圖形編程中用于模擬液體、煙霧、火、星空等現象的技術,它通過生成大量小粒子來模擬這些效果。ParticleSystem3D 提供了一個框架,允許開發者定義粒子的各種屬性,如生命周期、速度、顏色、大…

王道p149 9.設樹B是一棵采用鏈式結構存儲的二叉樹,編寫一個把樹 B中所有結點的左、右子樹進行交換的函數。(c語言代碼實現)

本題代碼如下 void swap(tree* t) {if (*t){treenode* temp (*t)->lchild;(*t)->lchild (*t)->rchild;(*t)->rchild temp;swap(&(*t)->lchild);swap(&(*t)->rchild);} } 完整測試代碼 #include<stdio.h> #include<stdlib.h> typed…

C#string.Format的一些使用

C#中的string.Format方法是一個用于格式化字符串的功能強大的方法。它允許您通過將占位符替換為實際的值來創建格式化的字符串。 一、基本語法是&#xff1a; string.Format(format, arg0, arg1, arg2, ...) 其中&#xff0c; format是一個字符串&#xff0c;其中包含要格式…

Java常用類

目錄 包裝類 裝箱和拆箱 包裝類型和String的轉換&#xff0c;包裝類的常用方法 包裝類 裝箱和拆箱 package com.edu.wrapper;public class Interger01 {//演示int<-->Integer的裝箱和拆箱//手動裝箱int n1100;Integer integer new Integer(n1);Integer integer01 In…

HCIP---MPLS---LDP

文章目錄 前言一、pandas是什么&#xff1f;二、使用步驟 1.引入庫2.讀入數據總結 前言 MPLS 基于標簽轉發表進行轉發&#xff0c;與路由表類似&#xff0c;標簽轉發表有兩種獲取渠道&#xff1a;一是手動配置(類似靜態路由)&#xff0c;二是通過協議自動學習(類似OSPF)。手動配…

6.1.webrc媒體協商

那今天呢&#xff1f;我們來看一下y8 rtc的媒體協商&#xff0c;那實際上在我們之前的課程中呢&#xff1f;我已經向你介紹過y8 rtc的媒體協商了。只不過呢&#xff0c;角度是不一樣的&#xff0c;在之前介紹外邊tc媒體協商的時候呢&#xff0c;我們是從應用的角度來看。那web …

ActiveMQ消息中間件應用場景

一、ActiveMQ簡介 ActiveMQ是Apache出品&#xff0c;最流行的&#xff0c;能力強勁的開源消息總線。ActiveMQ是一個完全支持JMS1.1和J2EE1.4規范的JMS Provide實現。盡管JMS規范出臺已經是很久的事情了&#xff0c;但是JMS在當今的J2EE應用中仍然扮演這特殊的地位。 二、Active…

《第一行代碼:Android》第三版-2.5.4數據類與單例_數據類

本文主要講述數據類&#xff0c;以前用java實現數據類很麻煩&#xff0c;寫很多代碼&#xff0c;就是搭個數據類的框架。kotlin用data class 關鍵字&#xff0c;給你簡化了數據類的創建&#xff0c;比較貼心。 就是自動為你創建了&#xff1a;equals()、hashCode()、toString(…

深入理解JVM 類加載機制

深入理解JVM 類加載機制 虛擬機如何加載Class文件&#xff1f; Class文件中的信息進入到虛擬機后會發生什么變化&#xff1f; 類加載機制就是Java虛擬機把描述類的數據從Class文件加載到內存&#xff0c;并對數據進行校驗、轉換解析和初始化&#xff0c;最終形成可以被虛擬機…

實現點擊一個選框 使得一個組件的可選性修改

實現效果 代碼 html <div class"divrow"><el-checkbox-group v-model"isSendTag" :max"1"><el-checkbox v-for"(item, index) in isSendTagOptions" :key"index" :label"item.value">{{item.…