日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高级编程技术 课后作业十三(第8周第2次)

發布時間:2023/12/29 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高级编程技术 课后作业十三(第8周第2次) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#18 【4Sum】 tag:array

題目大意:給定一個數組和一個目標數,找出數組的四個數使其和與目標數最接近,返回所有可能的四個數。

解題思路:排序后暴力循環,步驟如下。

(1)數組排序。

(2)設i,j,k,l分別對應數組四個數的下標,固定i=0,設result空列表代表結果。

(3)固定j=i+1。

(4)設sum4 = nums[i]+nums[j]+nums[k]+nums[l]。

(5)如果sum4等于target,并且[nums[i],nums[j],nums[k],nums[l]]不在result列表里,插入之。

(6)判斷sum4與target的大小,sum4小則往后遞增k,sum4大則往前遞減l,當k不再小于l時,將j固定為j+1,重復步驟4,直

到j等于len(nums)-2。

(7)固定i=i+1,重復步驟3,直到i等于len(nums)-3。

(8)返回result,函數退出。


class Solution:def fourSum(self, nums, target):nums.sort()result = []for i in range(len(nums)-3):for j in range(i+1,len(nums)-2):k,l = j+1,len(nums)-1while k < l:sum4 = nums[i]+nums[j]+nums[k]+nums[l]if sum4 == target and [nums[i],nums[j],nums[k],nums[l]] not in result:result.append([nums[i],nums[j],nums[k],nums[l]])if sum4 < target:k += 1else:l -= 1return result

總結

以上是生活随笔為你收集整理的高级编程技术 课后作业十三(第8周第2次)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。