原创 藍橋杯刷題基礎java--進制轉換和循環

一、進制轉換 注意看輸入的數的範圍是不是在int裏和輸出的數是否在int類型裏。int的取值範圍爲(-2147483648~2147483647),佔用4個字節(-231 到 231-1) ,如果在範圍內,則可以使用標準庫。 十

原创 LeetCode刻意練習16--無重複字符的最長子串

題目: 方法一: 1.定義一個整型數組visited[] 用於記錄已經遍歷過的字符串中所包含的字母。注意數組存放的不是char類型字符,而是將數組中字符的ASII值的索引用於存儲該字符在當前遍歷的字符串中最後出現的位置。 2.從

原创 LeetCode刻意練習14--最長公共前綴

題目: 方法一: LCP(string1, string2, string3) = LCP (LCP (string1, string2), string3) Ex: LCP (“geeksforgeeks”, “geeks”

原创 LeetCode刻意練習26--判斷子序列

題目: 給定字符串 s 和 t ,判斷 s 是否爲 t 的子序列。 你可以認爲 s 和 t 中僅包含英文小寫字母。字符串 t 可能會很長(長度 ~= 500,000),而 s 是個短字符串(長度 <=100)。 字符串的一個子序列

原创 LeetCode刻意練習19--相同的樹

題目: 給定兩個二叉樹,編寫一個函數來檢驗它們是否相同。 如果兩個樹在結構上相同,並且節點具有相同的值,則認爲它們是相同的。 思路: 遞歸太香了,就算它沒有記憶性,重複處理相同的子問題,並且可能會造成堆棧的溢出,但是身爲菜雞我真

原创 LeetCode刻意練習25--買賣股票的最佳時機

題目: 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多隻允許完成一筆交易(即買入和賣出一支股票一次),設計一個算法來計算你所能獲取的最大利潤。 理解題目: 因爲我們要獲得最大利益,就是在一個數組裏找到

原创 LeetCode刻意練習30--通配符匹配

題目: 給定一個字符串 (s) 和一個字符模式 § ,實現一個支持 ‘?’ 和 ‘*’ 的通配符匹配。 ‘?’ 可以匹配任何單個字符。 ‘*’ 可以匹配任意字符串(包括空字符串)。 兩個字符串完全匹配纔算匹配成功。 說明: s 可

原创 LeetCode刻意練習24--恢復二叉搜索樹

題目: 二叉搜索樹中的兩個節點被錯誤地交換。 請在不改變其結構的情況下,恢復這棵樹。 理解題目: 意思就是說給的二叉搜索樹中有兩個結點是被交換的,我們要做的就是把這兩個找到,然後對他們進行交換。 思路: 二叉搜索樹的中序遍歷是一個

原创 藍橋杯基礎(Java)--芯片測試&&矩陣乘法

芯片測試矩陣乘法 芯片測試 有n(2≤n≤20)塊芯片,有好有壞,已知好芯片比壞芯片多。   每個芯片都能用來測試其他芯片。用好芯片測試其他芯片時,能正確給出被測試芯片是好還是壞。而用壞芯片測試其他芯片時,結果與被測試芯片實際的

原创 LeetCode刻意練習23--不同的二叉搜索樹

給定一個整數 n,生成所有由 1 … n 爲節點所組成的二叉搜索樹。 思路: 二叉排序樹是左子樹的值均小於根節點,右子樹的值均大於根節點,而且左右子樹也是二叉排序樹。 因此,當我們選擇第 i 個結點作爲根節點時,第1-(i-1

原创 LeetCode刻意練習22--二叉樹的中序遍歷

中序遍歷(左子樹->根節點->右子樹) 方法一: 遞歸 public List<Integer> inorderTraversal(TreeNode root) { List<Integer> ans =

原创 滑動窗口技術(Sliding windows technique)

一、用途: 該技術將很少出現問題的嵌套for循環轉換爲單個for循環,從而減少時間複雜度。 二、例題: 例題1: 給定一個長度爲n的數組。 求連續k個元素的和最大值sum Input : arr[] = {100, 200,

原创 LeetCode刻意練習28--跳躍遊戲

題目: 給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最後一個位置。 方法一: 回溯法 有一組數據超時。 遍歷每個元素,對於每個元素i,先跳最大的步數

原创 LeetCode刻意練習17--最長的迴文子串

題目: 給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。 示例 1: 輸入: “babad” 輸出: “bab” 注意: “aba” 也是一個有效答案。 思路: 我們尋找所有奇數長度和

原创 python學習day004--循環結構

循環結構 當一個程序中的某一段代碼需要反覆運行時,我們會選擇應用循環結構,而不是將這一段代碼進行復制粘貼。因爲我們知道程序中講究代碼的複用性。 如何體現循環結構 在python中可以用for in 和 while for in