面試基礎 陣列相關

2021-08-21 17:57:21 字數 1143 閱讀 8916

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

思路:

陣列為有序陣列,可以採用類似二分查詢發進行;從左下角或者右上角切入,逐漸降陣列縮小,迴圈查詢

<?php

function find($target, $array)

if($target < $array[$i][$j])

}return false;

}

2.把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入乙個非減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。 例如陣列為的乙個旋轉,該陣列的最小值為1。 note:給出的所有元素都大於0,若陣列大小為0,請返回0。

思路:兩個分別有序的陣列組合在一起查詢,可以遍歷,也可以採用二分查詢,遍歷更簡單更容易理解

3.乙個資料,經過處理之後,保證陣列前半部分由計數組成,後半部分由偶數組成,並且保證奇數與基數之間,偶數與偶數之間相對位置不變。

思路1:遍歷陣列將奇數存入array1種,偶數存入array2中,然後將array1和array2順序合併

思路2:(1)i從左向右遍歷陣列,查詢第乙個偶數(2)j從i+1向右遍歷整個陣列,查詢第乙個奇數,將i至j-1之間的數後移一位,把a[j]放到a[i+1]的位置。(3)直至i=array.length-1為止

4.統計乙個數字在排序陣列中出現的次數。

思路1:排序陣列中統計k出現的次數,查詢陣列中第乙個k和最後乙個 k出現的位置,然後相減;

function getnumberofk($data, $k)

function findfirstk($data,$k)

function findlastk($data,$k)

思路2:查詢k+0.5與k-0.5的位置,找到這兩個數應該插入的位置,然後二者相減

<?php

function getnumberofk($data, $k)

function findk($data $num)else if($data[$mid]>$num)

}return $s;

}

js陣列相關面試題

昨天去人人網面試,面試我的小姐姐讓我手寫一些關於陣列操作的 我都寫出來了,但是面試官應該是不滿意我的實現方式,後來經過面試官的提示,又寫出了第二種方法,接下來就將這幾道面試題整理在下面。第一題 1,2,3,4,5,6 如何轉換成 1,2,3,4,5,6 我一開始的思路很簡單,就是定義乙個全域性變數的...

java面試基礎 集合相關問題

1 hashmap linkedhashmap concurrenthashmap arraylist linkedlist的底層實現。hashmap 執行緒非安全 實現了map介面,雜湊表儲存鍵值對,entry物件hash陣列預設大小16,2的指數次擴充 位運算增速,查詢效率高 允許鍵值對為nul...

js相關語法基礎 3 陣列

陣列的定義 兩種方式。var a 1,2,3,4,5 console.log a a new array 1,2,3,hello console.log a 請注意 直接給陣列賦予乙個新的長度會導致arr的大小發生變化。沒有的會以undefined賦值 var arr 1,2,3 arr 5 x a...