搜狗三道程式設計題整理(2020 09 05)

2021-10-24 08:55:15 字數 3133 閱讀 6143

方法一:

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 集合元素被移除...