注釋(q:question、a:answer、c:code)
q(1):陣列裡面只有0,1,2,排成順序的陣列
a:最簡單的方法是遍歷(簡單到不敢相信,當然這不是最好的方法);
三路快排的方法。
c:
/**三路快排
* 陣列裡面有3種數字,0,1,2
* 排成順序
* 時間複雜度 o(n)
* 空間為 o(1)
*/public
static
void
threeway(int array)
else
if(array[i] == 2)
else
}for(int a:array)
system.out.print(a+" ");
system.out.println();
}public
static
void
swap(int array,int i,int j)
以下是在leetcode上面做過的題,給出題號和解答
/**ques:88
* 給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為乙個有序陣列。
說明:
初始化 nums1 和 nums2 的元素數量分別為 m 和 n。
你可以假設 nums1 有足夠的空間(空間大小大於或等於 m + n)來儲存 nums2 中的元素。
思考: 有序陣列,nums空間足夠大,通過在末尾進行比較,填值,減小了開銷。
時間複雜度:o(n)
空間複雜度 o(m),沒有額外的空間開銷
*/ public void merge(int nums1, int m, int nums2, int n)
}while(i>=0)
while(j>=0)
system.out.println("[");
int k;
for(k = 0;k< nums1.length-1 ;k++)
system.out.println(nums1[k]+"]");
}/**
* question:215. 陣列中的第k個最大元素
* 描述:在未排序的陣列中找到第 k 個最大的元素。
* 請注意,你需要找的是陣列排序後的第 k 個最大的元素,而不是第 k 個不同的元素。
* */
public static int findkthlargest(int nums, int k)
public static int findkthlargest(int nums,int low,int high, int k)
public static int quickpanition(int nums,int low,int high)
else
return false;
}else
return false;}}
return true;
}public static int ischarordigit(char c)
/** *question:344 請編寫乙個函式,其功能是將輸入的字串反轉過來。
*/public string reversestring(string s)
return string.valueof(array);
}/**
* question:345 反轉字串中的母音字母
*/public string reversevowels(string s)
}return string.valueof(array);
}public boolean isvowels(char c)
public void swap(char array,int i,int j)
/** * question:11 盛最多水的容器
*/public static int maxarea(int height)
if(lz < hz)
low++;
else
high--;
}return area;
}
經典問題之HashMap碰撞問題
資料結構中有陣列和鍊錶來實現對資料的儲存,但這兩者基本上是兩個極端。陣列儲存區間是連續的,占用記憶體嚴重,故空間複雜的很大。但陣列的二分查詢時間複雜度小,為o 1 陣列的特點是 定址容易,插入和刪除困難 鍊錶儲存區間離散,占用記憶體比較寬鬆,故空間複雜度很小,但時間複雜度很大,達o n 鍊錶的特點是...
經典演算法系列之 遞迴
1 前言 演算法,在計算機中的地位,就相當於人類大腦的決策中樞系統,哪怕最簡單的演算法,其精妙的思維方式,都可以讓人開啟一扇新的視窗。演算法,它不僅僅只是狹義的用來解決電腦科學領域的問題,更是一種 思維方式 演算法思維,是一種深度思考和創造的過程。演算法,只有真正理解了,而不只是所謂的知道,並將應用...
經典演算法系列之 選擇排序
1 前言 演算法,在計算機中的地位,就相當於人類大腦的決策中樞系統,哪怕最簡單的演算法,其精妙的思維方式,都可以讓人開啟一扇新的視窗。演算法,它不僅僅只是狹義的用來解決電腦科學領域的問題,更是一種 思維方式 演算法思維,是一種深度思考和創造的過程。演算法,只有真正理解了,而不只是所謂的知道,並將應用...