劍指程式設計(11)

2021-08-09 14:33:11 字數 1826 閱讀 1785

一、

在乙個長度為n的陣列裡的所有數字都在0到n-1的範圍內。

陣列中某些數字是重複的,但不知道有幾個數字是重複的。

也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。

例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。

public

class

solution

bucket[numbers[i]] = true;

}return

false;

}}

二、

給定乙個陣列a[0,1,…,n-1],

請構建乙個陣列b[0,1,…,n-1],

其中b中的元素b[i]=a[0]a[1]…a[i-1]*a[i+1]…*a[n-1]。

不能使用除法。

public

class

solution

//計算下三角

b[0] = 1;

for(int i = 1; i < a.length; i++)

//計算上三角,因為需要用原來的b[i],需要借助臨時變數

int tmp = 1;

for(int i = a.length - 2; i >= 0; i--)

return b;

}}

三、

請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。

例如,字串」+100」,」5e2」,」-123」,」3.1416」和」-1e-16」都表示數值。

但是」12e」,」1a3.14」,」1.2.3」,」+-5」和」12e+4.3」都不是。

public

class

solution

flage = true;

}else

if(str[i] == '+' || str[i] == '-')

}else

if(str[i] == '.')

flagdot = true;

}else

if(str[i] < '0' || str[i] > '9')

}return

true;

}}

四、

乙個鍊錶中包含環,請找出該鍊錶的環的入口結點。

public

class

listnode

}public

class

solution

if(slow == null || fast.next == null)

slow = phead;

while(slow != fast)

return slow;

}}

五、

在乙個排序的鍊錶中,存在重複的結點,

請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。

例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5

class listnode 

}public

class

solution

pre.next = cur;

}else

}return tmp.next;

}}

劍指Offer 陣列 (11)

知識點 資料結構 陣列flag 這道題目一定要記!題目描述 統計乙個數字在排序陣列中出現的次數。思路 方法1 看到題目一種最簡單的解法就是把整個陣列遍歷一下 public class solution int firstk getfirstk array,k,0,length 1 int lastk...

劍指offer程式設計

二維陣列中的查詢 題目描述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,...

劍指程式設計(6)

一 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 class randomlistnode public class solution ...