国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

python小算法(二)

2019-11-14 17:29:41
字體:
來源:轉載
供稿:網友

有兩個序列a,b,大小都為n,序列元素的值任意整形數,無序;

要求:通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小。(華為面試)

def diff(sorted_list, length):	if not sorted_list:		return (([],[]))	last = sorted_list[-1]	big_list, small_list = diff(sorted_list[:-1],length)	big_list_sum = sum(big_list)	small_list_sum = sum(small_list)	if big_list_sum > small_list_sum:		if len(small_list) >= length:			big_list.append(last)		else:			small_list.append(last)		return ((big_list, small_list))	else:		if len(big_list) >= length:			small_list.append(last)		else:			big_list.append(last)		return ((small_list, big_list))def deal(one, two):	for i in xrange(len(one)-1,-1,-1):		for j in xrange(len(two)-1,-1,-1):			d = abs(sum(one) - sum(two))			if 0<= one[i] - two[j] <=d:				one[i], two[j] = two[j], one[i]	return ((one, two))a = [1,3,5,7,99,100,200]b = [2,4,6,88,10,9,233]length = len(a)a.extend(b)p = sorted(a,reverse=True)one, two = diff(p, length)one, two = deal(one, two)PRint oneprint twoprint sum(one), sum(two), sum(one) - sum(two)

  

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 潼南县| 辽阳县| 宜良县| 奉新县| 乌拉特后旗| 湖州市| 新民市| 湖南省| 万荣县| 杭锦后旗| 沙洋县| 界首市| 赤峰市| 汕头市| 嘉善县| 西和县| 安塞县| 新竹市| 旬邑县| 镇平县| 金湖县| 绥德县| 突泉县| 井冈山市| 靖西县| 玉龙| 泰宁县| 永兴县| 五寨县| 容城县| 安新县| 德江县| 河津市| 苏尼特右旗| 家居| 大城县| 若尔盖县| 通州市| 罗定市| 纳雍县| 广州市|