41:
# -*- coding:utf-8 -*-
class Solution:
def FindContinuousSequence(self, tsum):
# write code here
result = []
count = 0
for i in range(1,tsum//2+1):
count = i
for j in range(i+1,tsum//2+2):
count += j
if count == tsum:
result.append(list(range(i,j+1)))
return result
42:
# -*- coding:utf-8 -*-
class Solution:
def FindNumbersWithSum(self, array, tsum):
# write code here
result = 0
flag = 0
mul = -1
for i in array:
j = tsum - i
if j in array and j != i:
if not flag:
mul = j * i
result = i
flag = 1
elif i * j < mul:
mul = i * j
result = i
a = []
if not flag:
return a
else:
a.append(result)
a.append(mul / result)
return a
43:
# -*- coding:utf-8 -*-
class Solution:
def LeftRotateString(self, s, n):
# write code here
behand = s[n:]
head = s[:n]
return behand+head
44:
# -*- coding:utf-8 -*-
class Solution:
def IsContinuous(self, numbers):
# write code here
if len(numbers) == 0:
return False
kcount = numbers.count(0)
numbers.sort()
for i,v in enumerate(numbers[:-1]):
if v != 0:
if numbers[i+1] == v:
return False
kcount = kcount - (numbers[i+1] - v) + 1
if kcount < 0:
return False
return True
sol = Solution()
print(sol.IsContinuous([1,3,2,6,4]))
45:
# -*- coding:utf-8 -*-
class Solution:
def LastRemaining_Solution(self, n, m):
# write code here
if n < 1:
return -1
lis = list(range(n))
final = -1
start = 0
while lis:
k = (start + m - 1) % n
final = lis.pop(k)
n -= 1
start = k
return final
/**
约瑟夫问题
递推公式
让f[i]为i个人玩游戏报m退出最后的胜利者的编号,最后的结果自然是f[n]
服了
f[1] = 0;
f[i] = (f[i - 1] + m) mod i;
46:
# -*- coding:utf-8 -*-
class Solution:
def Sum_Solution(self, n):
# write code here
if n == 1:
return 1
return self.Sum_Solution(n-1) + n
47: