劍指offer總結 陣列

2021-09-25 10:19:23 字數 1992 閱讀 6567

劍指offer調整整數陣列順序

題目描述

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。

public class solution 

for(int j=top+1;j<=bottom;j++)

if(top!=bottom)

for(int k=right-1;k>=left;k--)

if(left!=right)

for(int l=bottom-1;l>top;l--)

left++;

top++;

right--;

bottom--;

}return list;

}}

正規表示式匹配

題目描述

請實現乙個函式用來匹配包括』.『和』『的正規表示式。模式中的字元』.『表示任意乙個字元,而』'表示它前面的字元可以出現任意次(包含0次)。 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串"aaa"與模式"a.a"和"abaca"匹配,但是與"aa.a"和"aba"均不匹配

思想:先考慮測試用例:模式字串裡包含普通字元、『.』、『』;模式字串和輸入字串匹配/不匹配;特殊:輸入字串和模式字串為null;

利用字元陣列,一定要考慮陣列的越界問題,時刻注意,條件表示式角度,要注意劃分清楚,

**:

public class solution 

public boolean matchcore(char str,int strindex, char pattern,int patternindex)

int copy = new int[array.length];//輔助陣列

int count = inversepairscore(array,copy,0,array.length-1);//數值過大求餘

return count;

}private int inversepairscore(int array,int copy,int low,int high)

int mid = (low+high)>>1;

int leftcount = inversepairscore(array,copy,low,mid)%1000000007;

int rightcount = inversepairscore(array,copy,mid+1,high)%1000000007;

int count = 0;

int i=mid;//兩陣列的中間位置

int j=high;

int loccopy = high;

while(i>=low&&j>mid)

}else

}for(;i>=low;i--)//如果第乙個陣列還有剩餘,更新到輔助陣列中

for(;j>mid;j--)//同上,第二個陣列

for(int s=low;s<=high;s++)//將已排序的部分更新到原陣列中去

return (leftcount+rightcount+count)%1000000007;

}}

在乙個長度為n的陣列裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。 例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。

思路:因為陣列中的值都是小於陣列長度的值得,所以可以利用陣列的下標值,順序遍歷陣列,利用現有陣列設定標誌,當乙個數字被訪問過後,可以設定對應位上的數 + n,之後再遇到相同的數時,會發現對應位上的數已經大於等於n了,那麼直接返回這個數即可。

**:

public class solution 

if(numbers[index] >= length)else

}return false;

}}

劍指offer 陣列

資料是最簡單的資料結構,它佔據一塊連續的記憶體並按照順序儲存資料。建立陣列時,首先指點陣列的容量大小,然後根據大小分配記憶體。缺點 空間效率不高。經常有空閒的區域滅有得到充分利用。優點 時間效率很高。可以根據時間效率高的特點,來實現簡單的雜湊表 把陣列的下標設為雜湊表的鍵值,陣列中的每乙個數字設為雜...

劍指offer 陣列

public class 03 陣列中的重複數字 swap number,number i i return 1 交換 public void swap int number,int i,int j public class 03 陣列中的重複數字 return 1 public intfindre...

劍指offer 陣列

問題描述 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。function find target,array return false 問題描述 在乙個長度...