題目:給定乙個非空的字串,判斷它是否可以由它的乙個子串重複多次構成。給定的字串只含有小寫英文本母,並且長度不超過10000。
思路:可以遍歷從下標0到長度的一半,如果當前的長度除總長度的餘數為0,說明長度可以整除。然後重複這個字串到總長度,和原字串相比,如果相等,則滿足條件。如果到l/2還沒找到相等的,則不滿足條件
/**
* @param s
* @return
*/var repeatedsubstringpattern = function(s)
return false;
};
題目:
兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。
給出兩個整數x
和y
,計算它們之間的漢明距離。
思路:轉成二進位制然後計算
/**
* @param x
* @param y
* @return
*/var hammingdistance = function(x, y)
return res;
};
題目:
給定乙個包含 0 和 1 的二維網格地圖,其中 1 表示陸地 0 表示水域。
網格中的格仔水平和垂直方向相連(對角線方向不相連)。整個網格被水完全包圍,但其中恰好有乙個島嶼(或者說,乙個或多個表示陸地的格仔相連組成的島嶼)。
島嶼中沒有「湖」(「湖」 指水域在島嶼內部且不和島嶼周圍的水相連)。格仔是邊長為 1 的正方形。網格為長方形,且寬度和高度均不超過 100 。計算這個島嶼的周長。
思路:觀察可知,計算總的島嶼方格數,減去重複的邊*2,即為島嶼的周長
/**
* @param grid
* @return
*/var islandperimeter = function(grid)
if (grid[i][j - 1] === 1)
if (grid[i][j + 1] === 1)
if (grid[i + 1] && grid[i + 1][j] === 1) }}
} return 4 * res - a;
};
題目:
有乙個金鑰字串 s ,只包含字母,數字以及 '-'(破折號)。其中, n 個 '-' 將字串分成了 n+1 組。
給你乙個數字 k,請你重新格式化字串,除了第乙個分組以外,每個分組要包含 k 個字元;而第乙個分組中,至少要包含 1 個字元。兩個分組之間需要用 '-'(破折號)隔開,並且將所有的小寫字母轉換為大寫字母。
給定非空字串 s 和數字 k,按照上面描述的規則進行格式化。
思路: 先計算去除-的字元的長度能否被k整除,可以的話,說明每個分組的長度為k,不能的話,第乙個分組的長度就是餘數
/**
* @param s
* @param k
* @return
*/var licensekeyformatting = function(s, k) -`;
for (let i = 0; i + n < l; i++) `;
} else `;
}} return res;
};
題目:給定乙個二進位制陣列, 計算其中最大連續1的個數。
思路:每次遇到1就累加,遇到0,將當前累加數和最大值比較取最大值,結束的時候再取一次
/**
* @param nums
* @return
*/var findmaxconsecutiveones = function(nums) else
} res = temp > res ? temp : res;
return res;
};
leetcode刷題記錄 1 簡單
題目 給定乙個二叉樹,返回所有從根節點到葉子節點的路徑。說明 葉子節點是指沒有子節點的節點。param root return var binarytreepaths function root const res if root.left root.right binarytreepathsdee...
leetcode刷題記錄 9 簡單
題目 給出 n 名運動員的成績,找出他們的相對名次並授予前三名對應的獎牌。前三名運動員將會被分別授予 金牌 銀牌 和 銅牌 gold medal silver medal bronze medal 注 分數越高的選手,排名越靠前。思路 拷貝乙份陣列,先排序,然後對數字前三個賦值字串,後面賦值對應的下...
leetcode刷題記錄 12 簡單
題目 給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹。s 的乙個子樹包括 s 的乙個節點和這個節點的所有子孫。s 也可以看做它自身的一棵子樹。思路 遞迴比較。判斷兩顆樹是否有相同的結構,就是比較根節點的val值,如果相同,比較左右子樹的節點值。這樣就可以用遞迴...