46.孩子們的遊戲(圓圈中最後剩下的數)
每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。hf作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成乙個大圈。然後,他隨機指定乙個數m,讓編號為0的小朋友開始報數。每次喊到m-1的那個小朋友要出列唱首歌,然後可以在禮品箱中任意的挑選禮物,並且不再回到圈中,從他的下乙個小朋友開始,繼續0…m-1報數…這樣下去…直到剩下最後乙個小朋友,可以不用表演,並且拿到牛客名貴的「名偵探柯南」典藏版(名額有限哦!!_)。請你試著想下,哪個小朋友會得到這份禮品呢?(注:小朋友的編號是從0到n-1)
47.求1+2+3+…+npublic
class
solution
list
res=
newarraylist
<
>()
;for
(int i=
0;i)int index=-1
;while
(res.
size()
>1)
return res.
get(0)
;}}
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(a?b:c)。
48.不用加減乘除做加法public
class
solution
}
寫乙個函式,求兩個整數之和,要求在函式體內不得使用+、-、*、/四則運算符號。
49.把字串轉換成整數public
class
solution
return num2;
}}
將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是乙個合法的數值則返回0
50.陣列中重複的數字public
class
solution
boolean flag=
true
;int index=0;
if(str.
charat
(index)
=='+'
)else
if(str.
charat
(index)
=='-'
)int sum=0;
for(
int i=index;ilength()
;i++
)int p = str.
charat
(i)-
'0';
if(flag&&
((sum==integer.max_value/
10&&p>7)
||sum>integer.max_value/10)
)if(!flag&&((
-sum==integer.min_value/
10&&p>8)
||-sum) sum=sum*
10+p;
}return flag?sum:
-sum;
}}
在乙個長度為n的陣列裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中第乙個重複的數字。 例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。
51.構建乘積陣列public
class
solution
for(
int i=
0;i)else}}
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]。不能使用除法。(注意:規定b[0] = a[1] * a[2] * … * a[n-1],b[n-1] = a[0] * a[1] * … * a[n-2];)
對於a長度為1的情況,b無意義,故而無法構建,因此該情況不會存在。
52.正規表示式匹配public
class
solution
int[
] b=
newint
[len]
;int tmp=1;
for(
int i=
0;i) tmp=1;
for(
int i=len-
1;i>=
0;i--
)return b;
}}
請實現乙個函式用來匹配包括』.『和』『的正規表示式。模式中的字元』.『表示任意乙個字元,而』'表示它前面的字元可以出現任意次(包含0次)。 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串"aaa"與模式"a.a"和"abaca"匹配,但是與"aa.a"和"ab*a"均不匹配
53.表示數值的字串public
class
solution
private
boolean
help
(char
c,char
p,int i,
int j)
if(memo[i]
[j]!=null)
boolean firstmatch = i(c[i]
==p[j]
||p[j]
=='.');
boolean ans;
if(j+
1=='*'
)else
memo[i]
[j]=ans?1:
-1;return ans;
}}
請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。
54.字元流中第乙個不重複的字元public
class
solution
if(index(str[index]
=='e'
||str[index]
=='e'))
return flag&&index==str.length;
}private
boolean
isponum
(char
str)
private
boolean
isnum
(char
str)
return index>start;
}}
請實現乙個函式用來找出字元流中第乙個只出現一次的字元。例如,當從字元流中只讀出前兩個字元"go"時,第乙個只出現一次的字元是"g"。當從該字元流中讀出前六個字元「google"時,第乙個只出現一次的字元是"l"。
55.鍊錶中環的入口結點public
class
solution
}public
char()
else
}return
'#';
}}
給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出null。
public
class
solution}if
(q==null||q.next==null)
p=head;
while
(p!=q)
return p;
}}
劍指offer全套解答 劍指offer 1 5
1.二維陣列中的查詢 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class solution int n array 0 length i...
劍指offer全套解答 劍指offer 36 45
36.兩個鍊錶的第乙個公共節點 輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 public class solution return p 37.數字在排序陣列 現的次數 統計乙個數字在公升序陣列 現的次數。publi...
劍指offer程式設計
二維陣列中的查詢 題目描述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,...