JAVA算法題練習day1

開始前:

選擇leetcode-hot100。要求每日1道,并且需要親自二刷昨天的題目(每一種解法),要做解題筆記并發布CSDN,做完立刻二刷。做題時間為每日12:50起,不拖延,這是學習成長的機會,堅持下去就會變得很厲害很強。當然,學習是一個持續的過程,開學之后每日JAVA做的算法題就是leetcode面試經典150題。變強。努力提升算法和工程能力。

力扣hot100

哈希

1.兩數之和

return new int[0]?表示返回一個長度為 0 的 int 類型數組

暴力枚舉:

class Solution {

? ? public int[] twoSum(int[] nums, int target) {

? ? ? ? for(int i = 0;i<nums.length;i++){

? ? ? ? ? ? for(int j=i+1;j<nums.length;j++){

? ? ? ? ? ? ? ? if(nums[j]==(target-nums[i])){

? ? ? ? ? ? ? ? ? ? int[] arr = new int[]{i,j};

? ? ? ? ? ? ? ? ? ? return arr;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? return new int[0];

? ? }

}

哈希表:

復習代碼隨想錄的哈希表理論基礎

(代碼隨想錄)

一般選擇3種數據結構來做哈希:數組、set(集合)、map(映射)

C++:“當我們要使用集合來解決哈希問題的時候,優先使用unordered_set,因為它的查詢和增刪效率是最優的,如果需要集合是有序的,那么就用set,如果要求不僅有序還要有重復數據的話,那么就用multiset。”

JAVA中哈希法涉及的數據結構:

1.?HashMap(最常用的哈希表實現)

  • 特點:基于哈希表實現,允許存儲?null?鍵和?null?值,無序(鍵值對的存儲順序與插入順序無關)。
  • 底層結構:JDK 1.8 后采用「數組 + 鏈表 + 紅黑樹」結構:
    • 數組(哈希桶):每個索引對應一個鏈表或紅黑樹。
    • 鏈表:解決哈希沖突(不同鍵映射到同一索引),當鏈表長度超過 8 時轉為紅黑樹(提高查詢效率)。
  • 核心方法
    • put(key, value):插入鍵值對(若鍵已存在則覆蓋值)。
    • get(key):根據鍵獲取值(不存在返回?null)。
    • containsKey(key):判斷是否包含指定鍵。
    • remove(key):刪除指定鍵的鍵值對。
  • 適用場景
    • 需快速通過鍵查找值(如緩存、計數統計)。
    • 解決兩數之和、子數組和等算法問題(通過鍵存儲目標值,值存儲索引)。

2.?HashSet(基于?HashMap?的集合)

  • 特點:底層通過?HashMap?實現(將元素作為?HashMap?的鍵,值為固定常量),不允許重復元素無序,允許?null?元素。
  • 核心方法
    • add(element):添加元素(若已存在則返回?false)。
    • contains(element):判斷元素是否存在。
    • remove(element):刪除元素。
  • 適用場景
    • 需要去重或快速判斷元素是否存在(如查找交集、判斷是否包含重復元素)。
    • 替代數組或鏈表做查找操作(時間復雜度從 O (n) 降至 O (1))。

Map:因為要用元素值去找匹配的元素,最后返回的是下標,所以元素值作為key(用于哈希查找),下標作為value。

JAVA map,set學習鏈接:

(https://blog.csdn.net/qq_47980550/article/details/148064851)

(https://blog.csdn.net/qq_47980550/article/details/148085987)

哈希法:

class Solution {

? ? public int[] twoSum(int[] nums, int target) {

? ? Map<Integer,Integer> map = new HashMap<Integer,Integer>();

? ? ? ? for(int i=0;i<nums.length;i++){

? ? ? ? ? ? if(map.containsKey(target-nums[i])){

? ? ? ? ? ? ? ? int[] arr = new int[]{i,map.get(target-nums[i])};

? ? ? ? ? ? ? ? return arr;

? ? ? ? ? ? }

? ? ? ? ? ? else map.put(nums[i],i);

? ? ? ? }

? ? ? ? return new int[0];

? ? }

}

MAP用于記錄遍歷過的。

?

2. 字母異位詞分組

題意:要做的還是遍歷一遍,過程中用MAP存遍歷,找。題目返回的類型是List需要先學習List:

(https://blog.csdn.net/qq_47980550/article/details/148012216)

回顧做過的題:242.有效的字母異位詞。

該題(242.有效的字母異位詞)哈希:

class Solution {

??? public boolean isAnagram(String s, String t) {

??????? // 首先判斷長度是否相等,不等直接返回false

??????? if (s.length() != t.length()) {

??????????? return false;

??????? }

???????

??????? // 手動創建計數數組,存儲每個字母的出現次數

??????? int[] count = new int[26];

???????

??????? // 手動遍歷字符串s,統計每個字符出現次數

??????? for (int i = 0; i < s.length(); i++) {

??????????? // 手動計算字符對應的索引('a'-'z'對應0-25)

??????????? char c = s.charAt(i);

??????????? int index = 0;

??????????? // 不使用減法運算,手動計算索引(鍛煉基礎邏輯)

??????????? for (char ch = 'a'; ch <= 'z'; ch++) {

??????????????? if (ch == c) {

??????????????????? break;

??????????????? }

??????????????? index++;

??????????? }

??????????? count[index]++;

??????? }

???????

??????? // 手動遍歷字符串t,減少對應字符的計數

??????? for (int i = 0; i < t.length(); i++) {

??????????? char c = t.charAt(i);

??????????? int index = 0;

??????????? for (char ch = 'a'; ch <= 'z'; ch++) {

??????????????? if (ch == c) {

??????????????????? break;

??????????????? }

??????????????? index++;

??????????? }

??????????? count[index]--;

???????????

??????????? // 如果出現負數,說明t包含s沒有的字符

??????????? if (count[index] < 0) {

??????????????? return false;

??????????? }

??????? }

???????

??????? // 檢查所有計數是否為0

??????? for (int i = 0; i < 26; i++) {

??????????? if (count[i] != 0) {

??????????????? return false;

??????????? }

??????? }

???????

??????? return true;

??? }

}
該題(242.有效的字母異位詞)暴力解法:

public class AnagramChecker {

??? public static boolean isAnagram(String s, String t) {

??????? // 首先檢查長度是否相同

??????? if (s.length() != t.length()) {

??????????? return false;

??????? }

???????

??????? // 自定義方法將字符串轉換為字符數組

??????? char[] sChars = stringToCharArray(s);

??????? char[] tChars = stringToCharArray(t);

???????

??????? // 使用冒泡排序對字符數組排序

??????? bubbleSort(sChars);

??????? bubbleSort(tChars);

???????

??????? // 比較排序后的字符數組

??????? for (int i = 0; i < sChars.length; i++) {

??????????? if (sChars[i] != tChars[i]) {

??????????????? return false;

??????????? }

??????? }

???????

??????? return true;

??? }

???

??? // 自定義方法:將字符串轉換為字符數組

??? private static char[] stringToCharArray(String str) {

??????? // 創建與字符串長度相同的字符數組

??????? char[] arr = new char[str.length()];

??????? // 逐個提取字符并放入數組

??????? for (int i = 0; i < str.length(); i++) {

??????????? arr[i] = str.charAt(i);

??????? }

??????? return arr;

??? }

???

??? // 冒泡排序實現

??? private static void bubbleSort(char[] arr) {

??????? int n = arr.length;

??????? for (int i = 0; i < n - 1; i++) {

??????????? for (int j = 0; j < n - i - 1; j++) {

??????????????? if (arr[j] > arr[j + 1]) {

??????????????????? // 交換元素

??????????????????? char temp = arr[j];

??????????????????? arr[j] = arr[j + 1];

??????????????????? arr[j + 1] = temp;

??????????????? }

??????????? }

??????? }

??? }

???

??? public static void main(String[] args) {

??????? // 測試示例

??????? System.out.println(isAnagram("anagram", "nagaram")); // 輸出: true

??????? System.out.println(isAnagram("rat", "car"));???????? // 輸出: false

??? }

}

冒泡排序:核心邏輯是(重復地比較兩個相鄰的元素,如果他們是逆序,就交換他們,知道整個序列排序完成)

(三分鐘學會冒泡排序_嗶哩嗶哩_bilibili)

private static void bubbleSort(char[] arr) {

??? int n = arr.length;? // 獲取數組長度

??? // 外層循環:控制需要進行多少輪比較

??? // 每一輪都會將當前未排序部分的最大元素"浮"到末尾

??? for (int i = 0; i < n - 1; i++) {

??????? // 內層循環:進行每一輪的相鄰元素比較

??????? // n - i - 1:因為每輪結束后,最后i個元素已經排好序,不需要再比較

??????? for (int j = 0; j < n - i - 1; j++) {

??????????? // 如果當前元素大于下一個元素,說明順序錯誤,需要交換

??????????? if (arr[j] > arr[j + 1]) {

??????????????? // 交換元素(借助臨時變量temp)

??????????????? char temp = arr[j];

??????????????? arr[j] = arr[j + 1];

??????????????? arr[j + 1] = temp;

??????????? }

??????? }

??? }

}

接下來做49.字母異位詞分組

把排序后的字符串作為鍵,將原字符串集合作為VALUE

JAVA ArrayList

(Java中ArrayList常用方法_java arraylist方法-CSDN博客)

import java.util.ArrayList;

import java.util.Arrays;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class AnagramGrouper {

???

??? // 主方法:將字符串數組中的異位詞分組

??? public List<List<String>> groupAnagrams(String[] strs) {

??????? // 創建一個HashMap,用于存儲分組結果

??????? // 鍵:字符串的特征編碼(如"a3b2c1")

??????? // 值:具有相同特征編碼的字符串列表(即異位詞組)

??????? Map<String, List<String>> groups = new HashMap<>();

???????

??????? // 遍歷輸入的每個字符串

??????? for (String str : strs) {

??????????? // 1. 計算當前字符串的字符計數數組

??????????? int[] counter = new int[26];? // 26個位置對應a-z 26個字母

??????????? for (int i = 0; i < str.length(); i++) {

??????????????? // 獲取當前字符,計算它在數組中的索引(a->0, b->1, ..., z->25)

??????????????? char c = str.charAt(i);

??????????????? int index = c - 'a';

??????????????? // 對應位置的計數加1

??????????????? counter[index]++;

??????????? }

???????????

??????????? // 2. 將計數數組轉換為字符串編碼(如[0,2,1] -> "b2c1")

??????????? StringBuilder sb = new StringBuilder();

??????????? for (int i = 0; i < 26; i++) {

??????????????? // 只處理出現過的字符,減少編碼長度

??????????????? if (counter[i] != 0) {

??????????????????? // 添加字符(如i=0對應'a',i=1對應'b')

??????????????????? sb.append((char) ('a' + i));

??????????????????? // 添加該字符出現的次數

??????????????????? sb.append(counter[i]);

??????????????? }

??????????? }

??????????? String code = sb.toString();? // 得到編碼字符串

???????????

??????????? // 3. 將當前字符串添加到對應的分組中

??????????? // 如果該編碼不存在于map中,先創建一個新列表

??????????? if (!groups.containsKey(code)) {

??????????????? groups.put(code, new ArrayList<>());

??????????? }

??????????? // 將當前字符串添加到對應的列表中

??????????? groups.get(code).add(str);

??????? }

???????

??????? // 4. 將map中的所有值(即分組列表)轉換為List并返回

??????? return new ArrayList<>(groups.values());

??? }

???

??? // 測試方法

??? public static void main(String[] args) {

??????? AnagramGrouper solution = new AnagramGrouper();

??????? String[] strs = {"eat", "tea", "tan", "ate", "nat", "bat"};

??????? List<List<String>> result = solution.groupAnagrams(strs);

???????

??????? // 打印結果

??????? for (List<String> group : result) {

??????????? System.out.println(group);

??????? }

??????? // 輸出應該是:

??????? // [eat, tea, ate]

??????? // [tan, nat]

??????? // [bat]

??? }

}

排序:由于互為字母異位詞的兩個字符串包含的字母相同,因此對兩個字符串分別進行排序之后得到的字符串一定是相同的,故可以將排序之后的字符串作為哈希表的鍵。

import java.util.ArrayList;

import java.util.Arrays;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

class Solution {

??? public List<List<String>> groupAnagrams(String[] strs) {

??????? // 創建一個哈希表,用于存儲分組結果

??????? // 鍵:排序后的字符串(例如"aet")

??????? // 值:具有相同排序結果的字符串列表(即異位詞分組)

??????? Map<String, List<String>> map = new HashMap<String, List<String>>();

???????

??????? // 遍歷數組中的每個字符串

??????? for (String str : strs) {

??????????? // 1. 將字符串轉換為字符數組

??????????? // 例如 "eat" 會變成 ['e', 'a', 't']

??????????? char[] array = str.toCharArray();

???????????

??????????? // 2. 對字符數組進行排序

??????????? // 排序后 ['e', 'a', 't'] 會變成 ['a', 'e', 't']

??????????? Arrays.sort(array);

???????????

??????????? // 3. 將排序后的字符數組轉換回字符串

??????????? // 這里就是你不理解的 String key = new String(array);

??????????? // 作用:把排序后的字符數組['a', 'e', 't']變成字符串"aet"

??????????? // 互為異位詞的字符串排序后會得到相同的key

??????????? String key = new String(array);

???????????

??????????? // 4. 這是你不理解的getOrDefault方法

??????????? // 作用:嘗試從map中獲取key對應的列表

??????????? // 如果存在,就直接使用這個列表;如果不存在,就創建一個新的空列表

??????????? List<String> list = map.getOrDefault(key, new ArrayList<String>());

??????????? /*

map.getOrDefault(key, new ArrayList<String>())這是 Map 接口的一個便捷方法,等價于下面的代碼:

List<String> list;

if (map.containsKey(key)) {

?? ???????? ?// 如果map中已經有這個key,就獲取已有的列表

?? ??????? list = map.get(key);

} else {

? ? ??????? // 如果map中沒有這個key,就創建一個新的空列表

?? ??????? list = new ArrayList<String>();

}

?????????? */

??????????? // 5. 將當前字符串添加到對應的列表中

??????????? list.add(str);

???????????

??????????? // 6. 將更新后的列表放回map中

??????????? map.put(key, list);

??????? }

???????

??????? // 7. 將map中所有的值(即所有分組)轉換為List并返回

??????? return new ArrayList<List<String>>(map.values());

??? }

}

3.最長連續序列

我想要做暴力法:冒泡排序+算法。但是有很多考慮不周全的地方,其實還要多練,加油。

問題分析

  1. 最后一段連續序列未被統計
    循環結束后,最后一段連續序列的長度(cnt)沒有與結果(res)比較,導致如果最長序列在數組末尾,會被遺漏。
  2. flag變量的邏輯混亂
    flag的存在使得重復元素的處理變得復雜,尤其是當重復元素出現在連續序列的起始位置時,會錯誤地重置計數。
  3. 重復元素處理不當
    當遇到重復元素(nums[i] == nums[i+1])時,無論是否在連續序列中,都應該直接跳過(不影響連續長度),但你的代碼中flag的判斷導致了錯誤的分支進入。

class Solution {

??? public int longestConsecutive(int[] nums) {

??????? if (nums.length == 0) return 0;

???????

??????? // 先排序

??????? mysort(nums);

???????

??????? int maxLen = 1;? // 最長連續序列長度

??????? int currentLen = 1;? // 當前連續序列長度

???????

??????? for (int i = 0; i < nums.length - 1; i++) {

??????????? // 情況1:當前元素與下一個元素相等(重復元素),不影響連續長度,直接跳過

??????????? if (nums[i] == nums[i+1]) {

??????????????? continue;

??????????? }

??????????? // 情況2:下一個元素是當前元素+1,屬于連續序列,長度+1

??????????? else if (nums[i+1] == nums[i] + 1) {

??????????????? currentLen++;

??????????? }

??????????? // 情況3:不連續,更新最長長度,并重置當前長度

??????????? else {

??????????????? maxLen = Math.max(maxLen, currentLen);

??????????????? currentLen = 1;

??????????? }

??????? }

???????

??????? // 最后一次比較(處理數組末尾的連續序列)

??????? maxLen = Math.max(maxLen, currentLen);

???????

??????? return maxLen;

??? }

???

??? // 冒泡排序(保持不變)

??? private void mysort(int[] nums) {

??????? for (int i = 0; i < nums.length - 1; i++) {

??????????? for (int j = 0; j < nums.length - i - 1; j++) {

??????????????? if (nums[j] > nums[j+1]) {

??????????????????? int temp = nums[j];

??????????????????? nums[j] = nums[j+1];

??????????????????? nums[j+1] = temp;

??????????????? }

??????????? }

??????? }

??? }

}

這樣顯然不符合題目o(n)的要求。下面學習哈希法:

哦其實不用排序,直接哈希查數一直查,是否有x,x+1,…。為什么不用排序:為了避開在子序列上找答案,只要保證該序列不是子序列,也就是要保證枚舉的數x在原數組中一定不存在前驅的x-1。并且set是自動去重的。

import java.util.HashSet;

import java.util.Set;

class Solution {

??? public int longestConsecutive(int[] nums) {

??????? // 1. 創建哈希集合存儲所有數字,實現O(1)時間復雜度的查詢

??????? // 哈希集合的特性:自動去重,且查詢元素是否存在時效率極高

??????? Set<Integer> numSet = new HashSet<Integer>();

??????? for (int num : nums) {

??????????? numSet.add(num); // 將數組中所有數字添加到集合中

??????? }

??????? // 用于記錄最長連續序列的長度,初始化為0

??????? int longestStreak = 0;

??????? // 2. 遍歷集合中的每個數字

??????? for (int num : numSet) {

??????????? // 關鍵判斷:只有當當前數字是一個序列的起點時,才開始計算連續長度

??????????? // 什么是序列的起點?即當前數字的前一個數字(num-1)不在集合中

??????????? // 這樣可以避免重復計算(例如序列1,2,3,只會從1開始計算,不會從2或3開始)

??????????? if (!numSet.contains(num - 1)) {

??????????????? int currentNum = num; // 當前正在檢查的數字

??????????????? int currentStreak = 1; // 當前連續序列的長度,至少為1(包含自身)

??????????????? // 3. 不斷檢查下一個數字是否存在于集合中,擴展連續序列

??????????????? // 例如當前數字是1,檢查2是否存在,存在則繼續檢查3,以此類推

??????????????? while (numSet.contains(currentNum + 1)) {

??????????????????? currentNum += 1; // 移動到下一個數字

??????????????????? currentStreak += 1; // 連續長度加1

??????????????? }

??????????????? // 4. 更新最長連續序列的長度

??????????????? longestStreak = Math.max(longestStreak, currentStreak);

??????????? }

??????? }

??????? // 返回最長連續序列的長度

??????? return longestStreak;

??? }

}

明天一定要二刷,能力欠缺,需要多學多練,深入地練習掌握。

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

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

相關文章

【Word Press進階】自定義區塊的行為與樣式

前兩篇 【Word Press基礎】創建自定義區塊【Word Press基礎】創建一個動態的自定義區塊 說明白了怎么創建一個簡單的靜態區塊。但實在是太丑了。這里再進行一個優化&#xff0c;讓咱們的區塊好看又好用。 一個合格的區塊應當有著好看的外表&#xff0c;完整的功能&#xff0…

Pygame模塊化實戰:火星救援游戲開發指南

Pygame模塊化實戰&#xff1a;火星救援游戲開發指南用Python打造太空探險游戲&#xff0c;掌握模塊化開發核心技巧一、火星救援&#xff1a;模塊化開發的完美場景??想象這樣的場景??&#xff1a; 你是一名宇航員&#xff0c;被困在火星表面&#xff0c;需要收集資源、修復飛…

三維圖像識別中OpenCV、PCL和Open3D結合的主要技術概念、部分示例

文章目錄1. 三維點云基礎概念點云(Point Cloud)深度圖像(Depth Image)體素(Voxel)2. 點云預處理技術去噪濾波(Noise Filtering)降采樣(Downsampling)3. 特征提取與描述法向量估計(Normal Estimation)關鍵點檢測(Keypoint Detection)特征描述子(Feature Descriptor)4. 點云配準(…

7.23數據結構——單鏈表

文章目錄一、思維導圖二、單鏈表代碼head.htext.cmain.c現象一、思維導圖 二、單鏈表代碼 head.h #ifndef __HEAD_H__ #define __HEAD_H__#include <stdlib.h> #include <stdio.h> #include <string.h>enum A {FAULSE-1,//失敗返回SUCCESS//成功返回};//給…

某種物聯網SIM卡流量查詢方法

說起流量卡,很多人可能還停留在營業廳辦理的常規套餐里。但其實在 2016 年,三大運營商就推出了一種資費更為劃算的正規流量卡 —— 物聯卡。當年,當不少人還在用 50 元 1G 的流量時,第一批體驗物聯卡的用戶已經享受到了 53 元 6G 的全國流量,徹底擺脫了流量焦慮。不過,至…

XTTS實現語音克隆:精確控制音頻格式與生成流程【TTS的實戰指南】

言簡意賅的講解XTTS解決的痛點 &#x1f4ce; 前置操作&#xff1a;如何使用 OBS Studio 錄制高質量 WAV 語音&#xff08;建議先閱讀并準備錄音樣本&#xff09; 本教程介紹如何使用 Coqui TTS 的 XTTS v2 模型 實現中文語音克隆&#xff0c;支持直接傳入 .wav 文件&#xff0…

C/C++中常量放置在比較操作符左側

目錄 介紹 原因詳解 避免誤用賦值運算符 示例對比 結論 介紹 在編程中&#xff0c;將常量放在比較操作符&#xff08;如 或 !&#xff09;的左側&#xff08;例如 if (42 value)&#xff09;&#xff0c;是一種被稱為 "Yoda 條件"&#xff08;Yoda Conditions…

Node.js 模擬 Linux 環境

&#x1f9e9; 項目介紹 該項目使用 Node.js 實現了一個模擬的 Linux 終端環境&#xff0c;支持多種常見的 Linux 命令&#xff08;如 ls, cd, cat, mkdir, rm 等&#xff09;&#xff0c;所有文件操作都在內存中進行&#xff0c;并持久化到本地文件系統中。適合用于學習 Shel…

HAProxy 實驗指南:從零開始搭建高可用負載均衡系統

引言HAProxy&#xff08;High Availability Proxy&#xff09;是一款高性能的TCP/HTTP負載均衡器和代理服務器&#xff0c;廣泛用于構建高可用、可擴展的Web架構。它由法國開發者Willy Tarreau于2000年開發&#xff0c;如今已成為開源社區和企業級應用中不可或缺的工具。HAProx…

2.10DOM和BOM插入/移除/克隆

1.DOM創建/插入/移除/克隆1.1創建元素前面我們使用過 document.write 方法寫入一個元素&#xff1a;這種方式寫起來非常便捷&#xff0c;但是對于復雜的內容、元素關系拼接并不方便&#xff1b;它是在早期沒有 DOM 的時候使用的方案&#xff0c;目前依然被保留了下來&#xff1…

華為倉頡編程語言的表達式及其特點

華為倉頡編程語言的表達式及其特點 倉頡&#xff08;Cangjie&#xff09;語言的表達式有一個明顯的特點&#xff0c;范圍不再局限于傳統算術運算&#xff0c;而是擴展到條件表達式、循環表達式等多種類型&#xff0c;每種表達式均有確定的類型和值。 傳統基本表達式&#xff0…

【linux】keepalived

一.高可用集群1.1 集群類型LB&#xff1a;Load Balance 負載均衡 LVS/HAProxy/nginx&#xff08;http/upstream, stream/upstream&#xff09; HA&#xff1a;High Availability 高可用集群 數據庫、Redis SPoF: Single Point of Failure&#xff0c;解決單點故障 HPC&#xff…

Webpack配置原理

一、Loader&#xff1a; 1、定義&#xff1a;將不同類型的文件轉換為 webpack 可識別的模塊2、分類&#xff1a; ① pre&#xff1a; 前置 loader &#xff08;1&#xff09;配置&#xff1a;在 webpack 配置文件中通過enforce進行指定 loader的優先級配置&#xff08;2&#x…

對比JS“上下文”與“作用域”

下面從定義、特性、示例&#xff0c;以及在代碼分析中何時側重“上下文”&#xff08;Execution Context/this&#xff09;和何時側重“作用域”&#xff08;Scope/變量查找&#xff09;&#xff0c;以及二者結合的場景來做對比和指導。一、概念對比 | 維度 | 上下文&#xff0…

如何做數據增強?

目錄 1、為什么要做數據增強&#xff1f; 2、圖像數據增強&#xff1f; 3、文本與音頻數據增強&#xff1f; 4、高級數據增強&#xff1f; 數據增強技術就像是一種“造數據”的魔法&#xff0c;通過對原始數據進行各種變換&#xff0c;生成新的樣本&#xff0c;從而提高模型…

Go by Example

網頁地址Go by Example 中文版 Github倉庫地址mmcgrana/gobyexample&#xff1a;按示例進行 HelloWorld package mainimport ("fmt" )func main() {fmt.Println("Hello World") } Hello World 值 package mainimport ("fmt" )func main() {…

ClickHouse高性能實時分析數據庫-消費實時數據流(消費kafka)

告別等待&#xff0c;秒級響應&#xff01;這不只是教程&#xff0c;這是你駕馭PB級數據的超能力&#xff01;我的ClickHouse視頻課&#xff0c;凝練十年實戰精華&#xff0c;從入門到精通&#xff0c;從單機到集群。點開它&#xff0c;讓數據處理速度快到飛起&#xff0c;讓你…

電子電氣架構 --- 車載軟件與樣件產品交付的方法

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 簡單,單純,喜歡獨處,獨來獨往,不易合同頻過著接地氣的生活,除了生存溫飽問題之外,沒有什么過多的欲望,表面看起來很高冷,內心熱情,如果你身…

C++:STL中vector的使用和模擬實現

在上一篇中講到了string類&#xff0c;string并不屬于STL中因為string出現的比STL早&#xff0c;但是在使用方法上兩者有相似之處&#xff0c;學習完string后再來看vector會容易的多&#xff0c;接著往下閱讀&#xff0c;一定會有收獲滴&#xff01; 目錄 vector的介紹 vect…

倉庫管理的流程、績效和解決方案?

什么是倉庫管理&#xff1f; 倉庫管理涉及對所有倉庫運營的日常監督。一個全面、集成的倉庫管理解決方案采用行業最佳實踐&#xff0c;并涵蓋使高效運營得以實現的所有基本要素。這些要素包括分銷和庫存管理、倉庫勞動力管理以及業務支持服務。此外&#xff0c;由內部提供或與服…