每日5題Day15 - LeetCode 71 - 75

每一步向前都是向自己的夢想更近一步,堅持不懈,勇往直前!

第一題:71. 簡化路徑 - 力扣(LeetCode)

class Solution {public String simplifyPath(String path) {Deque<String> stack = new LinkedList<>();for (String item : path.split("/")) {//如果是倆點,上一級不為空,則出棧(返回上一級)if (item.equals("..")) {if (!stack.isEmpty()) stack.pop();} else if (!item.isEmpty() && !item.equals(".")) stack.push(item);//否則,如果是正常的一個點. 代表進入下一級}String res = "";for (String d : stack) res = "/" + d + res;return res.isEmpty() ? "/" : res;  }
}

第二題:72. 編輯距離 - 力扣(LeetCode)

class Solution {public int minDistance(String word1, String word2) {//經典dp題,題目要求最小操作數int m = word1.length(), n = word2.length();int[][] dp = new int[m + 1][n + 1];//初始化一下特殊情況dp[0][0] = 0;for(int i = 1; i <= m; i++){dp[i][0] = i;}for(int j = 1; j <= n; j++){dp[0][j] = j;}//給出遞推公式for(int i = 1; i <= m; i++){for(int j = 1; j <= n; j++){if(word1.charAt(i - 1) == word2.charAt(j - 1)){//注意所設dp范圍,所以相等的時候是word1.charAt(i - 1) == word2.charAt(j - 1)dp[i][j] = dp[i - 1][j - 1];}else{//三種情況,從第一個字符串的角度來說是增加:dp[i - 1][j]//修改:dp[i - 1][j - 1]  刪除:dp[i][j - 1])//在這三者中取到最小的一種,增加1dp[i][j] = Math.min(dp[i - 1][j], Math.min(dp[i - 1][j - 1], dp[i][j - 1])) + 1;}}}return dp[m][n];}
}

第三題:73. 矩陣置零 - 力扣(LeetCode)

class Solution {public void setZeroes(int[][] matrix) {int m = matrix.length;int n = matrix[0].length;// 定義兩個數組來跟蹤需要置零的行和列boolean[] zeroRows = new boolean[m];boolean[] zeroCols = new boolean[n];// 遍歷矩陣以標記包含零的行和列for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (matrix[i][j] == 0) {zeroRows[i] = true;zeroCols[j] = true;}}}// 將零置于行for (int i = 0; i < m; i++) {if (zeroRows[i]) {for (int j = 0; j < n; j++) {matrix[i][j] = 0;}}}// 將零置于列for (int j = 0; j < n; j++) {if (zeroCols[j]) {for (int i = 0; i < m; i++) {matrix[i][j] = 0;}}}}
}

第四題:74. 搜索二維矩陣 - 力扣(LeetCode)

public class Solution {public boolean searchMatrix(int[][] matrix, int target) {//由于題目提到了每一行第一個數>上一行最后一個數//明顯提示了使用二分查找int m = matrix.length;int n = matrix[0].length;int left = -1;int right = m * n;while (left + 1 < right) {int mid = (left + right) >>> 1;int x = matrix[mid / n][mid % n];if (x == target) {return true;}if (x < target) {left = mid;} else {right = mid;}}return false;}
}

?第五題:75. 顏色分類 - 力扣(LeetCode)

class Solution {public void sortColors(int[] nums) {//直接快排quicksort(nums, 0, nums.length - 1);return;}private static void quicksort(int[] nums, int low, int high){if(low < high){int partindex = partition(nums, low, high);quicksort(nums, low, partindex - 1);quicksort(nums, partindex + 1, high);return;}}private static int partition(int[] nums, int low, int high){int pivot = nums[high];int i = low - 1;for(int j = low; j < high; j++){if(nums[j] < pivot){i++;int tmp = nums[i];nums[i] = nums[j];nums[j] = tmp;}}int tmp = nums[high];nums[high] = nums[i + 1];nums[i + 1] = tmp;return i + 1;}
}
class Solution {public void sortColors(int[] nums) {//刷油漆法,這個思路是真強啊int n0 = 0, n1 = 0;for (int i = 0; i < nums.length; i++) {int num = nums[i];//刷油漆法,先全部刷為2nums[i] = 2;//如果該值為1或0 那么我們往后刷一個1出來if (num < 2) {nums[n1++] = 1;}//和上面做法一樣,我們直接刷為0if (num < 1) {nums[n0++] = 0;}}}
}

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

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

相關文章

mysql的增刪查改(進階)

目錄 一. 更復雜的新增 二. 查詢 2.1 聚合查詢 COUNT SUM AVG MAX MIN 2.1.2 分組查詢 group by 子句 2.1.3 HAVING 2.2 聯合查詢/多表查詢 2.2.1 內連接 2.2.2 外連接 2.2.3 全外連接 2.2.4 自連接 2.2.5 子查詢 2.2.6 合并查詢 一. 更復雜的新增 將從表名查詢到…

自動化辦公01 smtplib 郵件?動發送

目錄 一、準備需要發送郵件的郵箱賬號 二、發送郵箱的基本步驟 1. 登錄郵箱 2. 準備數據 3. 發送郵件 三、特殊內容的發送 1. 發送附件 2. 發送圖片 3. 發送超文本內容 4.郵件模板內容 SMTP&#xff08;Simple Mail Transfer Protocol&#xff09;即簡單郵件傳輸協議…

霍夫曼樹教程(個人總結版)

背景 霍夫曼樹&#xff08;Huffman Tree&#xff09;是一種在1952年由戴維霍夫曼&#xff08;David A. Huffman&#xff09;提出的數據壓縮算法。其主要目的是為了一種高效的數據編碼方法&#xff0c;以便在最小化總編碼長度的情況下對數據進行編碼。霍夫曼樹通過利用出現頻率…

【Qt秘籍】[009]-自定義槽函數/信號

自定義槽函數 在Qt中自定義槽函數是一個直接的過程&#xff0c;槽函數本質上是類的一個成員函數&#xff0c;它可以響應信號。所謂的自定義槽函數&#xff0c;實際上操作過程和定義普通的成員函數相似。以下是如何在Qt中定義一個自定義槽函數的步驟&#xff1a; 步驟 1: 定義槽…

<jsp:setProperty>設置有參構造函數創建的自定義對象的屬性

假設某一個類&#xff08;如TextConverter類&#xff09;有一個無參構造函數和一個有參構造函數&#xff0c;我們可以在Servlet里面先用有參構造函數自己new一個對象出來&#xff0c;存到request.setAttribute里面去。 Servlet轉發到jsp頁面后&#xff0c;再在jsp頁面上用<j…

django基于大數據+Spring的新冠肺炎疫情實時監控系統設計和實現

設計一個基于Django(后端)和Spring(可能的中間件或服務集成)的新冠肺炎疫情實時監控系統涉及多個方面,包括數據收集、數據處理、數據存儲、前端展示以及可能的中間件服務(如Spring Boot服務)。以下是一個大致的設計和實現步驟: 1. 系統架構 前端:使用Web框架(如Reac…

三種字符串的管理方式

NSString的三種實現方式 OC這個語言在不停的升級自己的內存管理&#xff0c;盡量的讓自己的 OC的字符串 問題引入 在學習字符串的過程中間會遇到一個因為OC語言更新造成的問題 例如&#xff1a; int main(int argc, const char * argv[]) {autoreleasepool {NSString* str1 …

C++核心編程類的總結封裝案例

C類的總結封裝案例 文章目錄 C類的總結封裝案例1.立方體類的封裝2.點與圓的關系的封裝3.總結 1.立方體類的封裝 在C中&#xff0c;我們可以定義一個立方體&#xff08;Cube&#xff09;類來封裝立方體的屬性和方法。立方體的屬性可能包括邊長&#xff08;side length&#xff…

【redis】set和zset常用命令

set 無序集合類型 sadd 和 smembers SADD&#xff1a;將一個或者多個元素添加到set中。注意,重復的元素無法添加到set中。 語法&#xff1a;SADD key member [member] 把集合中的元素,叫做member,就像hash類型中,叫做field類似. 返回值表示本次操作,添加成功了幾個元素. 時間復…

網絡原理——http/https ---http(1)

T04BF &#x1f44b;專欄: 算法|JAVA|MySQL|C語言 &#x1faf5; 今天你敲代碼了嗎 網絡原理 HTTP/HTTPS HTTP,全稱為"超文本傳輸協議" HTTP 誕?與1991年. ?前已經發展為最主流使?的?種應?層協議. 實際上,HTTP最新已經發展到 3.0 但是當前行業中主要使用的HT…

概念解析 | 為什么SAR中的天線間隔需要是四分之一波長?

注1:本文系“概念解析”系列之一,致力于簡潔清晰地解釋、辨析復雜而專業的概念。本次辨析的概念是:為什么SAR中的天線間隔需要是四分之一波長 概念解析 | 為什么SAR中的天線間隔需要是四分之一波長? 在這篇文章中,我們將深入探討**合成孔徑雷達(SAR)**系統中,為什么天…

明日周刊-第12期

以前小時候最期待六一兒童節了&#xff0c;父母總會給你滿足一個愿望&#xff0c;也許是一件禮物也許是一次陪伴。然而這個世界上其實還有很多兒童過不上兒童節&#xff0c;比如某些地區的小孩子&#xff0c;他們更擔心的是能不能見到明天的太陽。 文章目錄 一周熱點航天探索火…

LeetCode-77. 組合【回溯】

LeetCode-77. 組合【回溯】 題目描述&#xff1a;解題思路一&#xff1a;回溯背誦版解題思路三&#xff1a;0 題目描述&#xff1a; 給定兩個整數 n 和 k&#xff0c;返回范圍 [1, n] 中所有可能的 k 個數的組合。 你可以按 任何順序 返回答案。 示例 1&#xff1a; 輸入&a…

Python怎么使用 SQLAlchemy 和model 查詢數據呢?

SQLAlchemy是一個流行的Python SQL工具包和對象關系映射器&#xff08;ORM&#xff09;。 假設正在使用 SQLAlchemy 并有一個模型 MyModel&#xff0c;使用這個模型以及 query 方法來查詢數據庫。 這里有一個基本的例子&#xff0c;說明如何使用 SQLAlchemy 的 query 方法和 wi…

算法-對列表元素劃分成兩個和值最大且相等的子列表

現有私募基金發行一支特殊基金產品&#xff0c;該基金認購人數上限不超過 30 人&#xff0c; 募集總金額不超過 3000W&#xff0c;每個投資人認購金額不定。該基金只能將募集到的錢用于投資兩支股票&#xff0c;且要求兩支股票投資金額必須相同&#xff0c;且每位投資人的錢只能…

0X JavaSE-- 集合框架【Collection(List、Set、Queue)、Map】

每一個集合類底層采用的數據結構不同&#xff0c;例如ArrayList集合底層采用了數組&#xff0c;LinkedList集合底層采用了雙向鏈表&#xff0c;HashMap集合底層采用了哈希表&#xff0c;TreeMap集合底層采用了紅黑樹。**集合中存儲的是引用。**即。集合中存放的是對象的地址&am…

springboot報錯:Failed to start bean ‘documentationPluginsBootstrapper‘

項目場景&#xff1a; springboot項目啟動時報錯 問題描述 具體報錯信息&#xff1a; 可能原因分析&#xff1a; 1、SpringFox的版本與Spring Boot的版本不兼容。解決這個問題&#xff0c;你可能需要檢查你正在使用的SpringFox和Spring Boot的版本&#xff0c;確保它們是兼容…

一千題,No.0037(組個最小數)

給定數字 0-9 各若干個。你可以以任意順序排列這些數字&#xff0c;但必須全部使用。目標是使得最后得到的數盡可能小&#xff08;注意 0 不能做首位&#xff09;。例如&#xff1a;給定兩個 0&#xff0c;兩個 1&#xff0c;三個 5&#xff0c;一個 8&#xff0c;我們得到的最…

[AIGC] 使用Flink SQL統計用戶年齡和興趣愛好

Apache Flink是一個具有強大計算能力、高吞吐量、低延遲的分布式計算框架&#xff0c;它支持批計算和流計算。Flink SQL是Flink ecosystem的一部分&#xff0c;是一種對結構化數據進行批和流處理的聲明式語言。本文以一個簡單的實例講解如何使用Flink SQL來統計用戶年齡和興趣愛…

C# 面向對象編程(一)——類 第三篇

總目錄 C# 語法總目錄 系列鏈接 C# 面向對象編程(一) 類 第一篇 C# 面向對象編程(一) 類 第二篇 C# 面向對象編程(一) 類 第三篇 C# 面向對象編程 一 ——類 第三篇 簡介面向對象編程類 第三篇9. 重載運算符10. 分部方法** nameof方法 **** GetType 方法和 typeof方…