- Apr 29 Fri 2022 11:43
-
【LeetCode】筆記-lru-cache
LinkedHashMap 概念非常不易 要另找時間再挑戰一次
- Apr 28 Thu 2022 11:54
-
【LeetCode】筆記-WordBreakII
- Apr 27 Wed 2022 11:56
-
【LeetCode】筆記-Word Break
- Apr 26 Tue 2022 14:04
-
【LeetCode】筆記-Clone Graph
- Apr 26 Tue 2022 13:57
-
【Android】ToolBar Searchview Suggestion
- Apr 25 Mon 2022 03:49
-
【LeetCode】Longest Consecutive Sequence
原本想先排序再Point index,但建議解真的很好,先將原index值+1 再去陣列循環是否包含此值,
以 [100,4,200,1,3,2] 來說 3+1=4,陣列確實含4且連續
以 [100,4,200,1,3,2] 來說 3+1=4,陣列確實含4且連續
- Mar 11 Fri 2022 12:34
-
【LeetCode】Insert Interval
class Solution {
public int[][] insert(int[][] intervals, int[] newInterval) {
List<int[]> ans = new ArrayList<>();
int[] toAdd = newInterval;
/* [[1,3],[6,9]]->[2,5] */
for (int i = 0; i < intervals.length; i ++) {
/*1. No overlap and toAdd appears before current interval, add toAdd to result.*/
if (intervals[i][0] > toAdd[1]) {//1>5,6>5,1>3,6>3
ans.add(toAdd);//[2,5],[1,3]
toAdd = intervals[i];//[1,3],[6,9]
}
/*2. Has overlap, update the toAdd to the merged interval.*/
else if (intervals[i][1] >= toAdd[0])
toAdd = new int[] {Math.min(intervals[i][0], toAdd[0]), Math.max(intervals[i][1], toAdd[1]) };
/*3. No overlap and toAdd appears after current interval, add current interval to result.*/
else ans.add(intervals[i]);
}
ans.add(toAdd);
return ans.toArray(new int[ans.size()][2]);
}
}
public int[][] insert(int[][] intervals, int[] newInterval) {
List<int[]> ans = new ArrayList<>();
int[] toAdd = newInterval;
/* [[1,3],[6,9]]->[2,5] */
for (int i = 0; i < intervals.length; i ++) {
/*1. No overlap and toAdd appears before current interval, add toAdd to result.*/
if (intervals[i][0] > toAdd[1]) {//1>5,6>5,1>3,6>3
ans.add(toAdd);//[2,5],[1,3]
toAdd = intervals[i];//[1,3],[6,9]
}
/*2. Has overlap, update the toAdd to the merged interval.*/
else if (intervals[i][1] >= toAdd[0])
toAdd = new int[] {Math.min(intervals[i][0], toAdd[0]), Math.max(intervals[i][1], toAdd[1]) };
/*3. No overlap and toAdd appears after current interval, add current interval to result.*/
else ans.add(intervals[i]);
}
ans.add(toAdd);
return ans.toArray(new int[ans.size()][2]);
}
}
- Mar 03 Thu 2022 13:35
-
【LeetCode】Merge Intervals
- Feb 22 Tue 2022 07:19
-
【Android Studio】License for package Android SDK Build-Tools 30.0.3 not accepted
- Jan 31 Mon 2022 09:59
-
【LeetCode】Spiral Matrix
第一次想這題時方向不太對
class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
//index[m] 走0~n.length-1格
//index[m+1] 走 最後(n-1)
//index[m+2] 走 n-1~ 0
//回到index[m+1]走 0~n-2
int m=matrix.length;
int n=matrix[0].length;
int i=0;
int r_index=0;
List<Integer> result= new ArrayList<Integer>();
while(i<m){//>字型走法
if(i==0){//第一列
int j=0;
while(j<n){
result.add(matrix[i][j++]);
}
}else if(i==m-1){//最後一列
int j=n-1;
while(j>=0){
result.add(matrix[i][j--]);
}
}else{//中間先走每一個matrix[i]最後一個index
result.add(matrix[i][n-1]);
}
i++;
r_index++;
}
//走中間每一個matrix[i]第一個index
i=0;
while(i<m&&m>2){
if(i!=0&&i!=m-1){
result.add(matrix[i][0]);
}
i++;
}
//....裡面的就要在循環一次>
return result;
}
}
class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
//index[m] 走0~n.length-1格
//index[m+1] 走 最後(n-1)
//index[m+2] 走 n-1~ 0
//回到index[m+1]走 0~n-2
int m=matrix.length;
int n=matrix[0].length;
int i=0;
int r_index=0;
List<Integer> result= new ArrayList<Integer>();
while(i<m){//>字型走法
if(i==0){//第一列
int j=0;
while(j<n){
result.add(matrix[i][j++]);
}
}else if(i==m-1){//最後一列
int j=n-1;
while(j>=0){
result.add(matrix[i][j--]);
}
}else{//中間先走每一個matrix[i]最後一個index
result.add(matrix[i][n-1]);
}
i++;
r_index++;
}
//走中間每一個matrix[i]第一個index
i=0;
while(i<m&&m>2){
if(i!=0&&i!=m-1){
result.add(matrix[i][0]);
}
i++;
}
//....裡面的就要在循環一次>
return result;
}
}
- Jan 31 Mon 2022 09:09
-
【LeetCode】Pow(x, n)
第一個想法,暴力破解
class Solution {
public double myPow(double x, int n) {
int i=1;
int round= Math.abs(n);//絕對值
double result=0;
result=x;
while(i<round){
result=x*result;
i++;
}
if(n>0){
return result;
}else{
return 1/result;
}
}
}
class Solution {
public double myPow(double x, int n) {
int i=1;
int round= Math.abs(n);//絕對值
double result=0;
result=x;
while(i<round){
result=x*result;
i++;
}
if(n>0){
return result;
}else{
return 1/result;
}
}
}
- Jan 30 Sun 2022 07:15
-
【LeetCode】筆記-Wildcard Matching
class Solution {
public boolean isMatch(String str, String pattern) {
int s = 0, p = 0, match = 0, starIdx = -1;
while (s < str.length()){
// advancing both pointers
if (p < pattern.length() && (pattern.charAt(p) == '?' || str.charAt(s) == pattern.charAt(p))){
s++;
p++;
}
// * found, only advancing pattern pointer
else if (p < pattern.length() && pattern.charAt(p) == '*'){
starIdx = p;
match = s;
p++;
}
// last pattern pointer was *, advancing string pointer
else if (starIdx != -1){
p = starIdx + 1;
match++;
s = match;
}
//current pattern pointer is not star, last patter pointer was not *
//characters do not match
else return false;
}
//check for remaining characters in pattern
while (p < pattern.length() && pattern.charAt(p) == '*')
p++;
return p == pattern.length();
}
}
public boolean isMatch(String str, String pattern) {
int s = 0, p = 0, match = 0, starIdx = -1;
while (s < str.length()){
// advancing both pointers
if (p < pattern.length() && (pattern.charAt(p) == '?' || str.charAt(s) == pattern.charAt(p))){
s++;
p++;
}
// * found, only advancing pattern pointer
else if (p < pattern.length() && pattern.charAt(p) == '*'){
starIdx = p;
match = s;
p++;
}
// last pattern pointer was *, advancing string pointer
else if (starIdx != -1){
p = starIdx + 1;
match++;
s = match;
}
//current pattern pointer is not star, last patter pointer was not *
//characters do not match
else return false;
}
//check for remaining characters in pattern
while (p < pattern.length() && pattern.charAt(p) == '*')
p++;
return p == pattern.length();
}
}

