網頁
▼
2023年12月31日 星期日
Python C++速解Leetcode 1624 Largest Substring Between Two Equal Characters
Python C++速解Leetcode 1624 Largest Substring Between Two Equal Characters。2023年底是簡單題Leetcode 1624. Largest Substring Between Two Equal Characters,無需Hash table,用array才是王道
2023年12月25日 星期一
2023年12月23日 星期六
2023年12月20日 星期三
python nsmallest與C++ nth_element解巧克力Leetcode2706 Buy Two Chocolates
python nsmallest與C++ nth_element解巧克力Leetcode2706 Buy Two Chocolates
2023年12月18日 星期一
2023年12月16日 星期六
Python C++秒搞定Leetcode 242 Valid Anagram
Python C++秒搞定Leetcode 242 Valid Anagram。其實解這問題C++, Python都有1 line code,有興趣者請進:
2023年12月13日 星期三
2023年12月11日 星期一
C++ python binary search二元搜尋解Leetcode1287 Element Appearing More Than...
C++ python binary search二元搜尋解Leetcode1287 Element Appearing More Than 25% In Sorted Array。程式不難找到合用的套件就好,要會用C++的upper_bound, lower_bound或是python的bisect.bisect_right, bisect.bisect_left
2023年12月10日 星期日
2023年12月6日 星期三
Python C++等差數列解Leetcode1716 Calculate Money in Leetcode Bank
等差數列(Arithmetic sequence)絕對是基礎數學,Leetcode1716 Calculate Money in Leetcode Bank這題當然是用O(1)時間的解答方式。
2023年12月4日 星期一
C, python解leetcode 2264 Largest 3 Same Digit Number in String
Leetcode又是連續出數日簡單的問題2264. Largest 3-Same-Digit Number in String,然而簡單問題還要要用適當的方式來解,解法最好有延展性,就用類似sliding window的解法。
2023年12月2日 星期六
2023年11月29日 星期三
2023年11月25日 星期六
C++ Python公式推導Prefix sum解Leetcode 1685 Sum of Absolute Differences in a...
C++ Python公式推導Prefix sum解Leetcode 1685 Sum of Absolute Differences in a Sorted Array
對於會用Σ處理公式的,Leetcode 1685. Sum of Absolute Differences in a Sorted Array這應算是Bill Gates口中簡單的數學,
2023年11月22日 星期三
2023年11月20日 星期一
C++ python 迴圈累加解Leetcode垃圾車問題2391 Minimum Amount of Time to Collect Gar...
C++ python 迴圈累加解Leetcode垃圾車問題2391 Minimum Amount of Time to Collect Garbage。Leetcode垃圾車的問題根本是閱讀測驗,
2023年11月19日 星期日
C++頻率分析解Leetcode 1887 Reduction Operations to Make the Array Elements Equal
C++頻率分析解Leetcode 1887 Reduction Operations to Make the Array Elements EqualLeetcode這個週末的兩題都能用frequency count,即所謂的counting sort來解題,如1887. Reduction Operations to Make the Array Elements Equal。因為是線性時間比起官方解答都要快,當然就100趴
2023年11月18日 星期六
2023年11月16日 星期四
2023年11月15日 星期三
2023年11月9日 星期四
C++ python高斯小學公式解Leetcode 1759 Count Number of Homogenous Substrings
C++ python高斯小學公式解Leetcode 1759 Count Number of Homogenous Substrings
高斯小學公式解1+2+...+n=n(n+1)/2 就 O(1)時間,不用它也行改用迴圈需時O(n)。解Leetcode 1759. Count Number of Homogenous Substrings也很好用,O(n)時間,O(1)空間,如果還要優化,就考慮平行化,這裡似乎有難度,空間就多用點。
2023年11月7日 星期二
C++ python prefix Sum與pyplot圖解打怪問題Leetcode 1921 Eliminate Maximum Numb...
C++ python prefix Sum與pyplot圖解打怪問題Leetcode 1921 Eliminate Maximum Number of Monsters
2023年11月6日 星期一
C++優先佇列priority queue解Leetcode 1845 Seat Reservation Manager
CPP優先佇列priority queue解Leetcode 1845 Seat Reservation Manager
2023年11月4日 星期六
2023年11月1日 星期三
2023年10月30日 星期一
2023年10月28日 星期六
2023年10月25日 星期三
python C++遞迴函數解Leetcode779 K th Symbol in Grammar
python C++遞迴函數解Leetcode779 K th Symbol in Grammar
[code on Leetcode]https://leetcode.com/problems/k-th-symbol-in-grammar/solutions/4205351/c-c-python-recursion-independent-of-n-one-line-0ms-beats-100/
Python code請看
2023年10月22日 星期日
2023年10月18日 星期三
2023年10月16日 星期一
2023年10月14日 星期六
2023年10月10日 星期二
C++ sliding window與deque解Leetcode難題2009 Minimum Number of Operations to...
1.對陣列nums進行排序
2.使用unique & erase去除nums中的重複元素
3.使用滑動視窗或使用queue/deque(帶迭代器)來追蹤滑動窗口
[codes on Leetcode]https://leetcode.com/problems/minimum-number-of-operations-to-make-array-continuous/solutions/4151921/3c-using-sort-binary-search-sliding-window-queue-beats-100/
2023年10月9日 星期一
2023年10月7日 星期六
C/C++用DP動態規劃解Leetcode難題1420 Build Array Where You Can Find The Maximum ...
Leetcode這個問題真是難,難在找出DP的遞迴關係式,出門遛狗才有靈感,至於後續的Prefix sum就是程式的優化,少了一個數量級計算,能解出來就很不錯了!!https://leetcode.com/problems/build-array-where-you-can-find-the-maximum-exactly-k-comparisons/solutions/4140062/c-c-recursive-dp-prefix-sum-dp-beats-100/
2023年10月2日 星期一
python, C++解零和遊戲Leetcode 2038 Remove Colored Pieces if Both Neighbors a...
這是一個遊戲。找出子字串 'AAA....' 和 'BBB....'。
讓我們看一些情況(Alice可以獲得的數量 vs Bob可以獲得的數量)
2023年9月29日 星期五
2023年9月26日 星期二
2023年9月25日 星期一
C++ Python用XOR sum解字串問題Leetcode 389 find the difference
C++ Python用XOR sum解字串問題Leetcode 389 find the difference。字串 t 是透過隨機打亂字串 s 產生的,然後在隨機位置再添加一個字母。找出那個添加的字母
2023年9月16日 星期六
C++ Dijkstra演算解爬山省力路徑Leetcode問題1631 Path With Minimum Effort
影片中的部份圖取自 wiki Dijkstra演算頁面。應該可以確認題目的「距離」是由所謂pseudo metric給定,這個要等檢查metric定義的條件時,才猛然發現。想通後,Union Find的解也解出,異常簡易。
[code on Leetcode]https://leetcode.com/problems/path-with-minimum-effort/solutions/4049711/c-dijkstra-s-algorithm-vs-dfs-binary-search-vs-union-find-pseudo-metric-91-ms-beats-98-93/
2023年9月10日 星期日
2023年9月3日 星期日
組合Pascal三角Python C++解Leetcode 62 unique paths
組合Pascal三角Python C++解Leetcode 62 unique paths。把網站的例題轉個45度角,它的計算方式就是Pascal三角,也就是組合數C^N_K (N=n+m-2, K=m-1),程式要寫得好,還是要多學點數學!
有了遞迴公式,就可用動態規劃dynamic programming,動態規劃就是一種程式設計的技巧
2023年9月2日 星期六
2023年9月1日 星期五
C++bit處理解Leetcode 338 counting Bits
提供三種位元處理方式來數位元,第三個解感謝由網友@Adamm93提供。提供 O(n) 線性時間解決方案。 __builtin_popcount 或 C++ bitset count() 執行時間為 O(log n) ,其實就是真的去數,因此在快速實作不使用。
2023年8月30日 星期三
2023年8月28日 星期一
2023年8月27日 星期日
2023年8月23日 星期三
鴿籠原理解Leetcode 767. Reorganize String
3隻狗4狗洞每隻狗都有一個狗洞,但只有兩個狗洞就不可能。若某個字元 c 的頻率 freq(c) 大於 (n+1)/2,根據鴿籠原理(Pigeonhole principle),找到一個相鄰字元不相同的字串是不可能的,反之則可能。當有 4 個成一排的狗洞,而有 3 隻狗時,不可能存在相鄰的狗洞讓這 3 隻狗分開,5個狗洞就可以。
2023年8月22日 星期二
沒有0數字系統Leetcode 168. Excel Sheet Column Title
2023年8月20日 星期日
C++拓樸排序Kahn演算與DFS解Leetcode難題1203 Sort Items by Groups Respecting Depende...
C++拓樸排序Kahn演算與DFS解Leetcode難題1203 Sort Items by Groups Respecting Dependencies
Kahn算法是一種透過刪除邊緣並減少入度的廣度優先搜索方法。
2023年8月18日 星期五
解 Leetcode 1615. Maximal Network Rank
Leetcode的問題很多樣,本來科技公司的徵人題目就不可測。今天是圖論的問題1615. Maximal Network Rank,描述的題意很不清楚。搞了許久也不知其圖是否為connected,因為是中等題目先假設是,透過標準的圖論處理,基本上就是造adjacent matrix算degree ,一個 O(V^2+E)的解答就成形,再針對題目優化演算O(V+E)的解答也完成。https://leetcode.com/problems/maximal-network-rank/solutions/3924728/cpython-adjacent-matrix-and-degree-array-ove/
2023年8月15日 星期二
C/C++解Leetcode 86 Partition List---Linked List鏈結串列
C/C++解Leetcode 86 Partition List---Linked List鏈結串列。刷題除了難題外,也要練習一下標準題型,這是標準的指標問題無誤。將所給的串列頭部分成兩個鏈結串列,一個是greater,另一個是smaller。然後將這兩個串列連接在一起,並返回結果。整個過程透過在Leetcode的Playground內所提交的修改程式碼來展示
2023年8月13日 星期日
C++ dp動態規劃解leetcode 2369 Check if There is a Valid Partition For The Array
C++ dp動態規劃解leetcode 2369 Check if There is a Valid Partition For The Array
這是一個DP問題。 使用一維陣列 DP 來存儲狀態。 使用自上而下的設計。 實現了具有記憶功能的遞迴程式。 第二種方法使用優化空間 O(1) 的自下而上設計。 由於計算時只考慮 dp[i-2]、dp[i-1]、dp[i] 和 dp[i+1] 4 個狀態。 索引模 4 足以滿足我們的實現。
2023年8月2日 星期三
2023年7月31日 星期一
C++動態規劃DP解Leetcode 712,1143 LCS問題
C++動態規劃DP解Leetcode 712,1143 LCS問題。利用計算公式minimumDeleteSum=asciiSum(s1)+asciiSum(s2)−2×asciiSum(LCS)
LCS(Longest common subsequence)之類的問題其實跟 DNA 序列的比對問題密切關聯。
2023年7月30日 星期日
2023年7月23日 星期日
2023年7月16日 星期日
DP動態規劃與bit遮罩C++解Leetcode 1125小而夠的團隊Smallest Sufficient Team
DP動態規劃與bit遮罩C++解Leetcode 1125小而夠的團隊Smallest Sufficient Team
這段程式碼使用動態規劃來找出擁有所有所需技能的最小足夠團隊。它使用二進位遮罩表示技能,並遍歷所有可能的團隊成員組合來找到最佳解。
2023年7月13日 星期四
2023年7月12日 星期三
2023年7月10日 星期一
2023年7月8日 星期六
Python/C++ Geedy演算完美切割解難題Leetcode 2551 Put Marbles in Bags
Geedy演算完美切割解難題Leetcode 2551 Put Marbles in Bags 要找到所有切割的最大和最小score,可以使用兩種方法:排序切割score(partition[i] = weights[i] + weights[i+1])或使用堆(C++ priority_queue)。一旦score排序或存儲在堆中,就可以輕鬆識別最大和最小score。
2023年7月5日 星期三
backtracking solves 8 queens by C++八后問題展示回遡解答
backtracking solves 8 queen by C++. Visualize the solving process by own C++/openCV program. Base on my C++ code solving Leetcode 51. N-Queens. There are exact 92 solutions for 8 queens. Some of them will be shown.
2023年7月1日 星期六
C++/Python DP動態規劃與bit遮罩解Leetcode 2305公平分餅乾 Fair Distribution of Cookies
C++/Python DP動態規劃與bit遮罩解Leetcode 2305公平分餅乾 Fair Distribution of Cookies 程式中使用了具有備忘錄的動態規劃。透過考慮每個袋子中不同子集的餅乾,程式遞迴地計算最小的不公平度。
2023年6月30日 星期五
BFS Minheap waterway solves #Leetcode 1970 Last Day Where You Can Still ...
BFS最小堆水路解Leetcode 1970 "最後一天你仍然可以穿越"的隨機測試案例。 使用C++/OpenCV將解方視覺化。核心想法是找到從第1欄到第col欄的連通水路。水路要用8個方向才可切斷陸路。
2023年6月26日 星期一
DP與BFS用C++解Leetcode 322 Coin Change換硬幣零錢
DP and BFS use C++ to solve Leetcode 322 Coin Change for coin change.
Various solutions:
2023年6月24日 星期六
C++ DP解Leetcode 956 Tallest Billboard 難題最高的廣告看板
C++ DP解Leetcode 956 Tallest Billboard 難題最高的廣告看板。問題難。 嘗試使用動態規劃來解。 使用不同的資料結構可以測試性能! 提供了 3 種不同的使用動態規劃的解決方案,一種使用unordered map,第兩種使用vector,第三種使用遞迴+記憶。
2023年6月20日 星期二
python/Sliding window解Leetcode 2090 K Radius Subarray Averages半徑K子陣列的平均
python/Sliding window解Leetcode 2090 K Radius Subarray Averages半徑K子陣列的平均 Sliding window實作也不困難,就用到陣列迴圈的概念,雖然標示中等題目,就算是沒學過資料結構演算法的,也很適合正在學一般程式設計的學生練習。
2023年6月16日 星期五
Python/C++用組合數學解難題Leetcode 1569重新排列陣列獲得相同二元搜尋樹之總數
解難題Leetcode 1569 Number of Ways to Reorder Array to Get Same BST
Python/C++使用組合數學解決問題之方法:重新排列陣列獲得相同二元搜尋樹的方法數(內含python code)
首先,陣列的第一個元素必須成為樹的根節點。
2023年6月15日 星期四
C++回溯解Leetcode 37難題數獨Sudoku
Backtracking solves the hard Sudoku puzzle, Leetcode 37, in C++.(內附以當代C++撰寫的快速解答)
2023年6月14日 星期三
2023年6月13日 星期二
2023年6月11日 星期日
C/C++/python解題Leetcode 36 Valid Sudoku有效數獨
C/C++/python解題#Leetcode 36 Valid #Sudoku 有效數獨。數獨是經典問題。 從{1, 2, ..., 9}中,有512種不同的方式可以選擇每個數字,只能選擇一次或不選擇。 需要檢查27個條件。
2023年6月5日 星期一
Python秒解Leetcode 1232 Check If It Is a Straight Line
Python solves Leetcode 1232 Check If It Is a Straight Line in seconds Simple mathematics, especially high school mathematics, is a very good material for programming and practice. Don’t underestimate this slope formula. Many people are stuck with the denominator being 0!!
2023年6月3日 星期六
DFS C++解Leetcode 1376 Time Needed to Inform All Employees(C++ code)
DFS C++解Leetcode 1376 Time Needed to Inform All Employees 一家公司的每個員工都有一個獨特的ID,從0到n-1。負責人是headID的那位, manager[headID] = -1。manager[i]表示員工i的直接經理,員工i需要花費informTime[i]分鐘來通知他的直接下屬,通知所有員工所需的時間?
2023年5月30日 星期二
2023年5月28日 星期日
動態規劃解C++解Leetcode 1547難題 Minimum Cost to Cut a Stick
這個問題被視為困難的可能原因是,使用暴力解法的時間複雜度為O(m!),其中m代表切割點的數量。然而,我們可以使用動態規劃來有效地解決這個問題。
動態規劃C++解Leetcode 1406難題零和遊戲stone game 3
動態規劃C++解#Leetcode 1406難題零和遊戲#stonegame3。 這是零和賽局,表示所有賽局方的利益之和為一常數,即一方有所得,其他方必有所失。Alice 和 Bob輪流, Alice先開始。 在每位玩家的回合中,該玩家可以從該行剩餘的第一顆石頭中拿走 1、2 或 3 顆石頭。
2023年5月21日 星期日
Leetcode 934最短橋樑與DFS BFS深廣優先搜尋演算C++解答
Leetcode 934最短橋樑與DFS BFS深廣優先搜尋演算C++解答。這是Leetcode在週日的題目,水中有兩島,要搭最短的橋。雖然標示中級,但如同其他週末的題目是較難的,要解這個問題,可先分成兩個步驟:
2023年5月16日 星期二
google Colab上darknet cuda版yolov4, yolov7辨識影片[第二集]
不用懷疑darknet本來就是C/C++/cuda軟體,yolov4, yolov7主要作者也是台灣人。google Colab上darknet cuda版yolo辨識影片[第二集]這一集主要展示用pytube下載yt影片至colab電腦,以及上傳影片至Colab,然後用yolov4, yolov7辨識,只要裝好darknet cuda版,無須其他任何python套件,簡單又暴力。
2023年5月15日 星期一
在google colab上使用Linux處理安裝gpu版Darknet使用yolov4, yolov7辨識圖片[第一集]
不用懷疑darknet本來就是C/C++/cuda軟體。在google colab上使用Linux處理安裝gpu版Darknet使用yolov4, yolov7辨識圖片。這一集主要展示如何使用Linux指令在Google Colab上安裝gpu版Darknet,在colab環境也能編譯執行C/C++程式讀取文字檔,另外辨識darknet的幾張測試圖。
2023年5月9日 星期二
2023年5月6日 星期六
python本機端使用訓練好Keras模型的實作
python本機端使用訓練好Keras模型的實作。ai機器學習辨識的程式實作要有兩個前提,一是硬體軟體,二是訓練好的模型。
[ML python套件tensorflow-gpu keras軟體安裝說明]https://youtu.be/gEsLLIIAuGs
[谷哥Teachable Machine訓練Keras模型操作人、貓、狗辨識]https://youtu.be/HbZ5hggMbio
Code請開:
2023年5月4日 星期四
2023年5月3日 星期三
2023年5月1日 星期一
2023年4月29日 星期六
Robomaster AIOT紅外線模組避障車
每次看到掃地機器人被卡住,總是會想質問這內建的程式到底是怎麼寫的? Robomaster AIOT紅外線模組避障車,紅外線模組當然是優於超音波測距模組,一個是靠光、另一個是靠音波反射時間差,紅外線模組瞬間可以掃出一條線上多點的資訊,可以精確知道障礙物的角度與距離。假設路面是平的,障礙物是有垂直面的,可以被ir模組測到(至少下面不是簍空,像是桌椅就不符)。
2023年4月26日 星期三
Leetcode 258 Add Digits C/C++/python解數字相加
老師小學時就知道判斷一自然數n是否為9的倍數就看它的數字和是否為除9餘0,老師的老師有教,連找質數的篩法小學就教了。Leetcode 258 Add Digits C/C++/python解數字相加,解答可以簡單到只有一行
return (num==0)?0:(num-1)%9+1;
不過先用遞迴解答,老師的遞迴解答雖是多項式時間也能在0 ms完成,再用點簡易數論Number Theory,O(1)的答案就呼之欲出了。C/C++的解答不論演算全是0ms完成,而相同架構的O(1)的答案python卻要35ms,非高階套件應用畢竟不是python的強項(而python的高階應用套件的核心往往是用C/C++/Fortran加上平行化函式庫,甚至是cuda C撰寫的),要玩演算法的實在要好好考慮。
2023年4月19日 星期三
App inventor與chatGPT及openai api串接「追加滑桿實作Json修定」
App inventor與chatGPT及openai api串接「追加滑桿實作Json修定」,Json格式的部份做更合理的處理,追加滑桿就是讓temperature參數可以調整,temperature=0答案最嚴謹,temperature=1 AI就會發揮創意。解軟體問題要像下棋布局,但沒有起手無回的問題,像是走迷宮走錯岔路後要回溯,不要奢望一次到位,AI的建議也不一定正確或最佳解,不斷地精進改善才是王道。
2023年4月18日 星期二
2023年4月17日 星期一
2023年4月14日 星期五
2023年4月13日 星期四
2023年4月12日 星期三
C/C++ curl串接chatGPT與openai API
C/C++ curl串接chatGPT 與openai API,有了curl 就有辦法串接chatGPT & openai_api,如果再加上能處理json的函式庫nlohmann-json,輪子都有了,那就能做出連openai api的車子。
2023年4月10日 星期一
2023年4月4日 星期二
2023年4月2日 星期日
2023年4月1日 星期六
2023年3月28日 星期二
openai dall-e python ai修圖
這隻狗本來是有牽繩的,旁邊的玩具車是ai添加的,影子的方向也處理了,這就是openai dall-e修圖。塗鴉的另外一大目的,就是ai人工智慧(不是工人智慧)修圖的前置作業,因為openai有提供python介面,就直接用python。curl也有但比較是指令集!python code請開:
2023年3月25日 星期六
C++ opencv使用setMouseCallback, circle塗鴉
塗鴉當然是有目的的,一方面可以介紹callback函數,另外還有其他用途。這裡opencv的callback函數的用法,應該是C程式的用法,跟C++ functional採Lambda語法的方式不同。可參考下列程式碼:
2023年3月22日 星期三
2023年3月20日 星期一
2023年3月19日 星期日
2023年3月14日 星期二
2023年3月11日 星期六
2023年3月5日 星期日
2023年2月26日 星期日
2023年2月24日 星期五
2023年2月20日 星期一
2023年2月19日 星期日
2023年2月18日 星期六
2023年2月14日 星期二
C程式秒解答Leetcode 509費氏數列 Fibonacci Numbers
C程式秒解答Leetcode 509費氏數列,有數學遞迴定義公式,最快的撰寫程式法就是翻譯成遞迴函數,效能不見得快,也不失一種正確解答方式,雖然是很慢的指數時,應付easy題目有餘。
2023年2月13日 星期一
2023年2月11日 星期六
RSA演算 Euler定理搞定LeetCode 372 Super Pow--C,C++,Python實作
RSA 演算 Euler 定理搞定#LeetCode 372 Super Pow--C,C++,Python實作。玩過數論、RSA演算的,解這個問題剛好,C++解答打敗94%,還沒有特別優化。
2023年2月10日 星期五
簡單for迴圈完成LeetCode中級挑戰167 Two Sum II ---Input Array Is Sorted
寫程式要會從陣列、迴圈玩起。#LeetCode 中級挑戰167 #TwoSum II ---Input Array Is Sorted
2023年2月9日 星期四
LeetCode之two sum C/C++解題迴圈法
Leetcode是有名的程式刷題網站,這個題目是個陣列問題,假設給定陣列nums={a_0, a_1,...a_{n-1}}與target找出i,j 使得a_i+a_j=target。