LeetCode 程式設計

2021-09-20 00:17:59 字數 3005 閱讀 7724

給乙個包含 n 個整數的陣列 s, 找到和與給定整數 target 最接近的三元組,返回這三個數的和。

for example, given array s = , and target = 1.

the sum that is closest to the target is 2. (-1 + 2 + 1 = 2).

解答部分

public class solution 

arrays.sort(numbers); // 對陣列進行排序

int bestsum = numbers[0] + numbers[1] + numbers[2];

for (int i = 0; i < numbers.length; i++)

if (sum < target) else }}

return bestsum;}}

二:**號碼的字母組合

給定乙個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。

給出數字到字母的對映如下(與**按鍵相同)。注意 1 不對應任何字母。

按鍵對應的拼音字母截圖如下

輸入:"23"

輸出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

分析:把每個數字按鍵和各個的字母對應起來封裝即可。

四數之和

描述:給定乙個包含 n 個整數的陣列 nums 和乙個目標值 target,判斷 nums 中是否存在四個元素 a,b,c,和 d,使得 a + b + c + d 的值和 target 相等?找出所有滿足條件且不重複的四元組。

tips:答案中不可以包含重複的四元組

public class solution 

for (int j = i + 1; j < num.length - 2; j ++) else if (sum > target) else

while (left < right && num[right] == num[right + 1]) }}

}}return rst;}}

刪除鍊錶的倒數第 n 個節點

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。

示例:

給定乙個鍊錶: 1->2->3->4->5, 和 n = 2.

當刪除了倒數第二個節點後,鍊錶變為 1->2->3->5.

說明:

給定的 n 保證是有效的。

介紹,思想就是定義兩個指標,可以第乙個先走 n 步,之後在同時移動這兩個指標即可。

public class solution 

listnode dummy = new listnode(0);

dummy.next = head;

listnode predelete = dummy; // 定義乙個指標指向第乙個節點

for (int i = 0; i < n; i ++)

head = head.next;

}while (head != null)

predelete.next = predelete.next.next;

return dummy.next;}}

括號匹配題目

注意空字串可被認為是有效字串。

示例 1:

輸入: "()"

輸出: true

示例 2:

輸入: "(){}"

輸出: true

示例 3:

輸入: "(]"

輸出: false

示例 4:

輸入: "([)]"

輸出: false

示例 5:

輸入: ""

輸出: true

tips:tochararray() 方法將字串轉換為字元陣列。2,注意題目要求不是輸入的括號需要成對出現才行。只要有不匹配的就可以直接返回 false。

public class solution 

if (c == ')')

}if (c == ']')

}if (c == '}') }}

return stack.isempty();}}

括號生成

給出 n 代表生成括號的對數,寫出乙個函式,使其能夠生成 所有 可能的並且有效的括號組合

[

"((()))",

"(()())",

"(())()",

"()(())",

"()()()"

]

解答:

class solution 

public void backtrack(listans, string cur, int open, int close, int max)

if (open < max)

backtrack(ans, cur+"(", open+1, close, max);

if (close < open)

backtrack(ans, cur+")", open, close+1, max);}}

leetcode程式設計題目

題目分析 給出乙個字串,求出最長的沒有重複字元的子串。解題思路 記錄法 首先我們必須知道怎麼判斷乙個子串的字元是否都只出現一次可以開乙個足夠大的布林陣列,然後每個字元是否出現記錄在對應ascll碼值的下標位置,初始化陣列都為0一旦遍歷到某個字元ch,若arr ch 1則表示ch已經在之前出現過,那我...

leetcode程式設計題

1 自除數 是指可以被它包含的每一位數除盡的數。例如,128 是乙個自除數,因為 128 1 0,128 2 0,128 8 0。還有,自除數不允許包含 0 給定上邊界和下邊界數字,輸出乙個列表,列表的元素是邊界 含邊界 內所有的自除數。示例 1 輸入 上邊界left 1,下邊界right 22 輸...

每日程式設計(七) leetcode

題目 刪除排序鍊錶中的重複元素 題目描述 給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。上 definition for singly linked list.type listnode struct func deleteduplicates head listnode listn...