如何優雅地刷力扣 LeetCode - Easy

Source

力扣LeetCode題庫
App > LeetCode > 題庫 > 題解

Notes

  1. 仔細審題,明確輸入輸出,通過測試用例。
  2. 先特殊,后尋常。
  3. 逆向思維。
  • 在條件語句中用!=代替==,提前終止循環,減少嵌套層級(else)

Debug環境

  1. VSCode > Extensions > LeetCode > Install
    在這里插入圖片描述
  2. Leecode > Show Problem / Show Top Voted Solution / Code Now
    在這里插入圖片描述
  3. Explorer > Code > Test | Submit
    默認功能只允許測試和提交
  4. Explorer > Debug
    準備Debug環境
  • 在launch.json文件中配置java環境
    在這里插入圖片描述

  • 創建一個主類test.java
    在這里插入圖片描述

  • 對應測試題Solution類改為S類,主類test.java中main函數中調用S()中的方法(避免多題Solution類沖突。同時記得測試完的題目中S類修改回Solution類)
    在這里插入圖片描述

  • Run and Debug > Debug ??(左上角)
    在這里插入圖片描述
    Refer to bli-video: How to set leetcode debug environment in vsCode
    Note: Debug leetcode extension supports python, js…

背景-為什么要創建DeBug環境?

LeetCode官方DeBug環境需要升級賬戶使用。

如何創建DeBug環境?

Easy

1. Two Sum

class Solution { // 定義一個名為Solution的類public int[] twoSum(int[] nums, int target) {int n = nums.length;for (int i = 0; i < n; ++i) {for (int j = i + 1; j < n; ++j) {if (nums[i] + nums[j] == target) {return new int[]{i, j};}}}return new int[0];}
}

9. Palindrome Number

Palindrome Number (回文數): A number that reads the same backward as forward.

Thoughts

  1. 將int轉換為string需要額外非常量空間,優先考慮其他方式(進階)
  2. -231 <= x <= 231-1 (int range): 反轉可能溢出,反轉一半數字
class Solution {public boolean isPalindrome(int x) {if (x < 0 || (x % 10 == 0 && x != 0)) {return false;}int revertedNumber = 0;while (x > revertedNumber) {revertedNumber = revertedNumber * 10 + x % 10;x /= 10;}return x == revertedNumber || x == revertedNumber / 10;}
}

13. Rome to Integer

The key intuition lies in the fact that in Roman numerals, when a smaller value appears before a larger value, it represents subtraction, while when a smaller value appears after or equal to a larger value, it represents addition.

class Solution {public int romanToInt(String s) {Map<Character, Integer> m = new HashMap<>();m.put('I', 1);m.put('V', 5);m.put('X', 10);m.put('L', 50);m.put('C', 100);m.put('D', 500);m.put('M', 1000);int ans = 0;for (int i = 0; i < s.length(); i++) {if (i < s.length() - 1 && m.get(s.charAt(i)) < m.get(s.charAt(i + 1))) {ans -= m.get(s.charAt(i));} else {ans += m.get(s.charAt(i));}}return ans;}
}

14. Longest Common Prefix

To find the longest common prefix, first sort the list lexicographically(字典序/字母序:基于Unicode編碼/ASCII值). The longest common prefix will always be the shared prefix between the first and last strings in the sorted list. This works because if the lexicographically smallest string (‘flight’) and largest string (‘flower’) share a prefix, all middle strings must share that prefix too.

class Solution {public String longestCommonPrefix(String[] strs) {StringBuilder ans = new StringBuilder();Arrays.sort(strs); String first = strs[0], last = strs[strs.length-1]; for (int i = 0; i < Math.min(first.length(), last.length()); i++) {if (first.charAt(i) == last.charAt(i)) {ans.append(first.charAt(i));}return ans.toString();}return ans.toString();}
}

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

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

相關文章

AI繪畫:生成唐初程咬金全身像提示詞

根據唐代歷史記載和藝術形象特征&#xff0c;以下是優化后的中文Midjourney 提示詞&#xff0c;突出程咬金的猛將氣質與唐初甲胄細節&#xff1a; 核心提示詞&#xff08;戰場形象&#xff09; 中年猛將程咬金&#xff0c;全身甲胄像&#xff0c;唐初光要甲制式&#xff1a;身…

【實時Linux實戰系列】實時數據流處理框架分析

背景與重要性在當今數字化時代&#xff0c;數據的實時處理變得至關重要。無論是金融交易、工業自動化還是物聯網&#xff08;IoT&#xff09;設備&#xff0c;都需要能夠快速處理和響應數據流&#xff0c;以確保系統的高效運行和決策的及時性。實時Linux操作系統因其低延遲和高…

一周學會Matplotlib3 Python 數據可視化-Hello World編寫

鋒哥原創的Matplotlib3 Python數據可視化視頻教程&#xff1a; 2026版 Matplotlib3 Python 數據可視化 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili Matplotlib3簡介 Matplotlib 是 Python 最流行的數據可視化庫之一&#xff0c;廣泛應用于科學計算、數據分析、科研繪…

中國MCP市場:騰訊、阿里、百度的本土化實踐

中國MCP市場&#xff1a;騰訊、阿里、百度的本土化實踐 &#x1f31f; Hello&#xff0c;我是摘星&#xff01; &#x1f308; 在彩虹般絢爛的技術棧中&#xff0c;我是那個永不停歇的色彩收集者。 &#x1f98b; 每一個優化都是我培育的花朵&#xff0c;每一個特性都是我放飛的…

房產證識別在房產行業的技術實現及應用原理

技術實現1. 圖像采集與預處理圖像獲取&#xff1a;通過高分辨率掃描儀或手機攝像頭獲取房產證圖像預處理技術&#xff1a;去噪處理&#xff08;消除掃描噪聲&#xff09;圖像增強&#xff08;提高對比度&#xff09;傾斜校正&#xff08;自動旋轉至正確角度&#xff09;二值化處…

決策樹技術詳解:從理論到Python實戰

?決策樹像人類的思考過程&#xff0c;用一系列“是/否”問題層層逼近答案?一、決策樹的核心本質決策樹是一種模仿人類決策過程的樹形結構分類/回歸模型。它通過節點&#xff08;問題&#xff09;?? 和 ?邊&#xff08;答案&#xff09;?? 構建路徑&#xff0c;最終在葉節…

Herd-proof thinking

Let’s dive into “herd-proof thinking” — the mindset and tactics that help you stay sharp, independent, and immune to manipulative systems.&#x1f9e0; Part 1: The Foundation of Herd-Proof Thinking 1. Recognize Incentives“If you don’t know who the pr…

day068-DevOps基本知識與搭建遠程倉庫

文章目錄0. 老男孩思想-傳統文化1. 運維人員對網站集群的關注項2. CI、CD3. DevOps4. 環境5. Git5.1 **為什么叫 “Git”&#xff1f;**5.2 Git的核心設計理念5.3 Git工作空間5.4 分支 branch5.5 命令5.5.1 配置git用戶信息5.5.2 初始化git倉庫5.5.3 將文件放入暫存區5.5.4 提交…

分布式文件系統07-小文件系統的請求異步化高并發性能優化

小文件系統的請求異步化高并發性能優化222_分布式圖片存儲系統中的高性能指的到底是什么&#xff1f;重構系統架構&#xff0c;來實現一個高性能。然后就要做非常完善的一個測試&#xff0c;最后對這個系統做一個總結&#xff0c;說說后續我們還要做一些什么東西。另外&#xf…

【C#補全計劃:類和對象(十)】密封

一、密封類1. 關鍵字&#xff1a;sealed2. 作用&#xff1a;使類無法再被繼承&#xff1b;在面向對象設計中&#xff0c;密封類的主要作用是不允許最底層子類被繼承&#xff0c;可以保證程序的規范性、安全性3. 使用&#xff1a;using System;namespace Sealed {// 使用sealed關…

【視覺識別】Ubuntu 22.04 上安裝和配置 TigerVNC 魯班貓V5

系列文章目錄 文章目錄系列文章目錄前言一、問題現象二、安裝和配置步驟1.引入庫2.安裝完整組件3.修改 ~/.vnc/xstartup4. 設置權限5. 設置開機自啟&#xff08;Systemd 服務&#xff09;總結前言 開發平臺&#xff1a;魯班貓V5 RK3588 系統版本&#xff1a;Ubuntu 22.04 一、…

模擬-38.外觀數列-力扣(LeetCode)

一、題目解析1、替換的方法&#xff1a;“33”用“23”替換&#xff0c;即找到相同的數&#xff0c;前一位為相同數的數量&#xff0c;后一位為相同的數2、給定n&#xff0c;需要返回外觀數列的第n個元素二、算法原理由于需要統計相同元素的數目&#xff0c;所以可以使用雙指針…

垃圾桶滿溢識別準確率↑32%:陌訊多模態融合算法實戰解析

原創聲明本文為原創技術解析文章&#xff0c;涉及的技術參數與架構設計均參考自《陌訊技術白皮書》&#xff0c;轉載請注明來源。一、行業痛點&#xff1a;智慧環衛中的識別難題隨著智慧城市建設推進&#xff0c;垃圾桶滿溢識別作為智慧環衛的核心環節&#xff0c;面臨多重技術…

掃地機器人的幾種語音控制芯片方案介紹

?掃地機器人語音控制芯片方案介紹在智能家居領域&#xff0c;掃地機器人的智能化程度不斷提升&#xff0c;語音控制功能成為提升用戶體驗的關鍵因素。以下為您介紹幾款常用于掃地機器人語音控制的芯片方案。WT2606B 芯片方案性能優勢&#xff1a;基于先進的 RISC - V 32 位開源…

快速開發實踐

基于后端項目的前端開發實踐記錄 &#x1f4cb; 項目概述 項目名稱: 比特奧定制報表系統 技術棧: Vue 3 Element Plus Vite (前端) Spring Boot (后端) 開發模式: 前后端分離 項目結構: 單體倉庫包含前后端代碼 &#x1f3d7;? 項目架構分析 目錄結構設計 bitao-defined_re…

NFC 三大模式對比

以前以為nfc只是點對點通訊&#xff0c;沒想到現在nfc的功能很強大NFC 三大模式對比&#xff08;回顧&#xff09;模式作用手機是...Reader 模式讀取卡、標簽內容主動設備&#xff08;讀卡器&#xff09;Card Emulation 模式模擬公交卡/門禁卡/銀行卡被動設備&#xff08;卡&am…

JSON、JSONObject、JSONArray詳細介紹及其應用方式

第一部分&#xff1a;什么是JSON?&#x1f31f;比喻&#xff1a;JSON 是「快遞公司統一的 “通用快遞單”」&#x1f4a1;場景代入你想給朋友寄生日禮物&#xff08;比如一臺 “游戲機”&#xff09;&#xff0c;這臺游戲機有自己的屬性&#xff1a;名稱&#xff1a;"游戲…

Linux系統編程--權限管理

權限管理第二講 權限管理1. Shell命令以及運行原理1.1 知識引入1.2 概念介紹1.3 具體示例2. Linux權限問題2.1 權限概念2.2 用戶分類2.3 切換用戶2.4 用戶提權2.5 文件權限管理2.5.1 文件訪問者的分類&#xff08;角色&#xff09;2.5.2 文件類型和訪問權限&#xff08;事物屬性…

【智能硬件】X86和ARM架構的區別

詳細解釋X86架構和ARM架構之間的區別以及它們各自的特點。X86 架構定義與歷史定義&#xff1a;X86是一種計算機處理器體系結構&#xff0c;最初由英特爾公司開發。它是一系列指令集的集合體。歷史&#xff1a;最早的X86架構是Intel 8086處理器&#xff0c;在1978年發布。后續發…

玳瑁的嵌入式日記D13-0806(C語言)

指針1.指針指針 就是地址(地址就是內存單元的編號)指針變量 (結合語境) eg&#xff1a;定義一個指針指針這一類數據 --- 數據類型 --- 指針類型 (1).指針 是什么 (2).指針類型 int a; //int數據類型 a是int型變量 //a的空間 想來存儲 整型數據 2.指針的定義 基類型 * 指針變量名…