LeetCode 陣列系列(間隔)

2021-08-01 06:42:36 字數 1100 閱讀 4281

56. merge intervals

題目:interval包含start和end,將重疊部分合併

思路:用start和end標記目前的最後乙個,但不急著加到list裡面,因為可能有變化,對list操作時間複雜度高。還需要注意對interval型別進行compare函式重寫,或是使用匿名比較器。

/**

* definition for an interval.

* public class interval

* interval(int s, int e)

* }*/public class solution

else

}ret.add(new interval(start,end));

return ret;

}}

collections.sort(intervals, new comparator()

});

57. insert interval

題目:將乙個interval插入原有有序的interval序列中,使其依然有序。

思路:在56題基礎上進行了一些改進,先將所有end比插入start小的填入list中,然後比較出新的start和end,在按照同樣的方法插入。

/**

* definition for an interval.

* public class interval

* interval(int s, int e)

* }*/public class solution

if(i == intervals.size())

if(intervals.get(i).start < end)

start = math.min(intervals.get(i).start, start);

for(; i < intervals.size(); i++)

}else

}ret.add(new interval(start, end));

return ret;

}}

LeetCode 查詢陣列系列

33.search in rotated sorted array 題目 在乙個被旋轉一次的遞增陣列中找到目標值。思路 二分法 思路一定要清晰!當mid和目標值不等時,判斷mid和start的大小,大於說明旋轉位置在後面,反之在前面。在後面的時候start mid是遞增的,可以直接判斷目標值在不在其...

leetcode連續陣列系列

560 和為k的子陣列 給定乙個整數陣列和乙個整數 k,你需要找到該陣列中和為 k 的連續的子數 組的個數。示例 1 輸入 nums 1,1,1 k 2 輸出 2 1,1 與 1,1 為兩種不同的情況。這道題暴力的解法就是先儲存陣列的字首和,然後遍歷差分,求所有和為k的子陣列,時間複雜度為o n 2...

Leetcode 陣列之和系列

leetcode 1.兩數之和 方法1 排序 查詢 方法2 雜湊法 class solution def twosum self,nums list int target int list int sum 0 m for i in range len nums sum nums i if targe...