python的return语句求两数之和_程序题(python解)
PyCharm整理代碼:Ctrl+Alt+l list行數(shù):len(list) list列數(shù):len(list[1])
筆試常使用到的功能: 1、單獨取出一長串字符中每個單獨的字符:
輸入‘a(chǎn)bcd’,輸出‘a(chǎn)’'b''c''d'
def zifu(value):
return list(map(str,str(value)))
2、單獨取出整數(shù)中每個位上的數(shù)字
輸入12345,輸出[1 2 3 4 5]
def shuzi(value):
result = []
while value:
result.append(value % 10)
value = value // 10
result.reverse()#逆序,按正常的順序返回
return result
簡單的筆試題目: 1、兩數(shù)之和 給定一個整數(shù)數(shù)組 nums 和一個目標值 target,請你在該數(shù)組中找出和為目標值的那兩個整數(shù),并返回他們的數(shù)組下標。假設(shè)每種輸入只會對應(yīng)一個答案。但是,你不能重復(fù)利用這個數(shù)組中同樣的元素。
// 也可以哈希來求解,通過字典來模擬哈希查詢的過程
class Solution:
def twoSum(self, nums, target):
d = {}
n = len(nums)
for x in range(n):
if target - nums[x] in d:? # 看另外一個數(shù)字有沒有在字典里
return d[target - nums[x]], x? # 有的話直接就可以返回value了;沒有的話會繼續(xù)循環(huán)
else:
d[nums[x]] = x? # 把數(shù)組里的數(shù)字作為key即nums[x],下標作為value存到d字典中
2、求最大公因數(shù)
// 輾轉(zhuǎn)相除法
def f(a, b):
while b:
r = a%b
a = b
b = r
return a#除數(shù)除以余數(shù),最后的被除數(shù)a是最大公因數(shù),此時的除數(shù)是0,即上一輪的余數(shù)
print(f(100,30))
3、查找數(shù)組中的重復(fù)數(shù)字
// 在一個長度為 n 的數(shù)組 nums 里的所有數(shù)字都在 0~n-1 的范圍內(nèi)。數(shù)組中某些數(shù)字是重復(fù)的,但不知道有幾個數(shù)字重復(fù)了,也不知道每個數(shù)字重復(fù)了幾次。請找出數(shù)組中任意一個重復(fù)的數(shù)字。
//set() 函數(shù)創(chuàng)建一個無序不重復(fù)元素集,可進行關(guān)系測試,刪除重復(fù)數(shù)據(jù),還可以計算交集、差集、并集
class solution(object):
def function(self, nums):
dic = set()
for num in nums:
if num in dic:
return num
else:
dic.add(num)
return -1
4、list和鏈表的翻轉(zhuǎn)
// list的反轉(zhuǎn)
def resv(li):
new = []
if li:
cnt = len(li)
for i in range(cnt):#右邊不包含
new.append(li[cnt-i-1])#重點
return new
// 鏈表的反轉(zhuǎn)
var foo = 'bar';
5、python實現(xiàn)常見排序方法
// 選擇排序,直接選擇最小的
#排序,輸入nums=[5,4,3,2,1],輸出nums=[1,2,3,4,5]
#1、選擇排序
def xuanze(nums):
leng = len(nums)
for i in range(leng):
for j in range(i, leng):########
if nums[i] >= nums[j]:
#t = nums[i]
#nums[i] = nums[j]
#nums[j] = t
nums[i], nums[j] = nums[j], nums[i]
return nums
// 冒泡排序,兩兩比較將大的沉底
def maopao(nums):
leng = len(nums)
for i in range(leng):
for j in range(1, leng-i):######
if nums[j-1] >= nums[j]:
nums[j-1], nums[j] = nums[j], nums[j-1]
return nums
// 插入排序,將后面的往前面拍好順序的里面插
def charu(nums):
leng = len(nums)
for i in range (leng):
for j in range(i):########
if nums[j] >= nums[i]:
nums[i], nums[j] = nums[j], nums[i]
return nums
// 希爾排序,循環(huán)執(zhí)行l(wèi)ength/2,交叉成組,將每一組排序。
總結(jié)
以上是生活随笔為你收集整理的python的return语句求两数之和_程序题(python解)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最高12代酷睿i7加持!壹号本二合一Wi
- 下一篇: 当c语言表达式中同时有字符 整数,c语言