方法一:
500293?type=0
&order=
0&pos=
7&page=
1&channel=
666&source_id=discuss_center_0
class
solution
:def
numberofprize
(self , a , b , c )
:# write code here
res =
0 res+=
min(a,b,c)
a -= res
b -= res
c -= res
a,b,c =
sorted
([a,b,c]
)return
min(res +(2
*b+c)//5
,res +
(b+c)//4
)方法二:
500271?type
=all
&order=time&pos=
&page=
1&channel=
666&source_id=search_all
public int numberofprize (
int a,
int b,
int c)
else
}return right;
} private boolean check(
int mid,
int a,
int b,
int c)
else
if(b>=mid)
else
if(c>mid)
else
return left>=0;
} private int
min(
int a,
int b,
int c)
private int
max(
int a,
int b,
int c)
第二題,建房子,思路是找房子間隔,大於t就+2,等於t就+1,最後考慮最左和最右,+2就可以了
class
solution
:def
gethouses
(self , t , xa )
:# write code here
res =
0for i in
range(0
,len
(xa),2
):xa[i]
,xa[i+1]
= xa[i]
-xa[i+1]
/2,xa[i]
+xa[i+1]
/2for i in
range
(len
(xa)//2
-1):
if xa[
2*i+2]
- xa[
2*i+1]
== t:
res +=
1elif xa[
2*i+2]
- xa[
2*i+1]
> t:
res +=
2return res+
2
方法二:
public int gethouses (
int t,
int[
] xa)
int count=2;
for(
int i =
0; i < xanda.length-
1; i++)
elseif(
(xanda[i+1]
[0]-xanda[i][1
])>t)
}return count;
}
第三題 求方差和最小的idx,這個題是原題= =有舍友阿里被問過。方法就是d(x) = e(x^2) - e(x)2,利用字首和陣列,可以很快計算出arr[i:j]的e(x)2和e(x^2).
class
solution
:def
find_best_cut
(self , arr )
:# write code here
n =len(arr)
prex =[0
] prex2 =[0
]for num in arr:-1
]+num)-1
]+num**2)
defvar
(i,j)
:if i>=j:
return
0 n = j-i+
1 ex =
(prex[j+1]
-prex[i])/n
ex2 =
(prex2[j+1]
-prex2[i])/n
return ex2-ex**
2 v =
float
('inf'
) res =
0for i in
range(0
,n):
temp =
abs(var(
0,i-1)
+ var(i,n-1)
)if temp < v:
res = i
v = temp
return res
方法二:
public long getpasswordcount (string password)
private void backtrack(char[
] chars,
int start,
int[
] i, deque stack)
return;}
if(start==0)
}else
else}}
} private boolean checkequals(deque stack, char[
] chars)
return true;
}
位運算程式設計題三道
public class muti return 0 移位操作符來替代乘法操作,從而提高效率 public static void main string args public class test1 int i 1 while i n i 1 return true 判斷乙個數是否為2的n次方 ...
真題 程式設計題整理
1 兩個非遞減的鍊錶 la lb 合併成la為頭節點的非遞增鍊錶 2 三個非遞減的鍊錶 la lb lc 合併成la為頭節點的非遞增鍊錶 3 兩個非遞減的鍊錶 la lb 合併成la為頭節點的非遞減鍊錶 4 三個非遞減的鍊錶 la lb lc合併成la為頭節點的非遞減鍊錶 1 兩個非遞減的鍊錶 la...
一道程式設計題
題目要求 1 自己給定乙個集合 元數個數不得少於10個 2 讓使用者任一輸入乙個整數 3 根據使用者輸入的整數,移除集合中相應的元素 請根據示例找出元素移除的規律 4 運算結束後,集合中所有元素均被移除 示例 集合元素為 a b c d e f g h i j 使用者輸入的整數為 3 集合元素被移除...