有兩個序列a,b,大小都為n,序列元素的值任意整形數,無序; 要求:通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小。
整體思想是利用兩個列表和的差值絕對值大小判斷是否互動兩個列表的值
#!/usr/bin/env python
# coding=utf-8def abs_test(a,b):
# 假設剛開始就是差值最小的
# 此時的差值絕對值為:
min = abs(sum(a)-sum(b))
# x,y分別為a,b列表的下標值
x=y=0
# 當a的下標小於a的長度時,依次用b的每一個值和a的值交換
# 比較他們的差值絕對值的大小
while x<len(a):
#依次用b的每一個值和當前a的值交換
while y<len(b):
a[x],b[y] = b[y],a[x]
# 交換後2個列表的差值絕對值
tmp = abs(sum(a)-sum(b))
# 如果此時的差值小,則賦值給min
# 否則還將交換回去
if min>tmp:
min = tmp
else:
a[x],b[y] = b[y],a[x]
y += 1
x += 1
y = 0
return a,b
a = [1000, 999, 998, 997, 996, 995]
b = [994, 993, 992, 3, 2, 1]
val = abs_test(a,b)
print(val)
原文連結:http://blog.51cto.com/myunix/1331612
相關推薦
[微軟]有兩個序列a,b,大小都為n,序列元素的值任意整數,無序; 要求:通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小_利用排列組合思路解決_python版
+= 求和 ever tro 解決 turn 運行 main lis (原題出自微軟公司面試題)問題如下:有兩個序列a,b,大小都為n,序列元素的值任意整數,無序;要求:通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小。例如:a=[100,99,
有兩個序列a,b,大小都為n,序列元素的值任意整數,無序;要求:通過交換a,b中的元素,使[序列a元素的和
原題:有一序列a,大小為n,分為2部分,序列元素的值任意整形數,無序; 要求:通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小,用python寫。 #coding=ut
有兩個序列a,b,大小都為n,序列元素的值任意整形數,無序; 要求:通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小。
整體思想是利用兩個列表和的差值絕對值大小判斷是否互動兩個列表的值#!/usr/bin/env python# coding=utf-8def abs_test(a,b): # 假設剛開始就是差值最小的 # 此時的差值絕對值為: min = abs(sum(a
華為面試題(8分鐘寫出程式碼) 有兩個陣列a,b,大小都為n,陣列元素的值任意,無序; 要求:通過交換a,b中的元素,使陣列a元素的和與陣列b元素的和之間的差最小
先上程式碼 java程式碼: public class MinDiff { public static void main(String[] args){ int[] aa={2,5,4,3,1,0}; int[] bb={7,9,8,10,6,11}
Python 經典面試題: a,b兩個序列,大小都為n,序列元素的值任意整形數,無序, 要求: 通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小 使
方法: 用隨機數來求出結果 解題思想: 用隨機數隨機出來所有的程式碼排列可能性,在定義次數的時候 定義的次數越大得到的結果越準確. 最終程式碼: import random #有很多方法是把兩個列表合成一個後排序按照一大一小的分配生成兩個列表 #但是這樣是在資
演算法二十二:陣列和之間差最小
有兩個序列a,b,大小都為n,序列元素的值任意整數,無序; 要求:通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小。 例如: var a=[100,99,98,1,2, 3]; var b=[1, 2, 3, 4,5,40]; 分析:要是序
python面試題,通過交換a,b中的元素,使[序列a和]與[序列b和]之間的差最小
sumb = sum(lstb) d = abs(suma-sumb) if d == 0: return d bExchange = False for indexa, ia in enumerate(lsta): i
【資料結構 C描述】有兩個整數集合 A 和 B 分別用兩個線性表 LA 和 LB 表示,求:一個新的集合A=A∪B,A仍然為純集合,線性表採用鏈式儲存方式。【單鏈表】
這是我的作業題,作業寫完後再附到部落格中,可能程式碼寫得很爛。雖然是C語言寫的,但是我在其中加入了C++的寫法,例如cout。我懶得寫printf的格式控制符,所以用cout來輸出內容,這樣我感覺簡便多了 題目 假設:有兩個整數集合 A 和 B 分別用兩個線性表
有兩個磁碟檔案A和B,各存放一行字母,要求把這兩個檔案中的資訊合併(按字母順序排列)
#include "stdio.h" main() { FILE *fp; int i,j,n,ni; char c[160],t,ch; if((fp=fopen("A","r"))==NULL) {printf("file A cannot be open
一個類有兩個方法,其中一個是同步的,另一個是非同步的; 現在又兩個執行緒A和B,請問:當執行緒A訪問此類的同步方法時,執行緒B是否能訪問此類的非同步方法?
一個類有兩個方法,其中一個是同步的,另一個是非同步的;現在又兩個執行緒A和B,請問:當執行緒A訪問此類的同步方法時,執行緒B是否能訪問此類的非同步方法? 答案:可以 驗證 package com.my.test2; public class ClassA { public syn
雅虎面試題─有兩個雙向迴圈連結串列A,B,知道其頭指標為:pHeadA,pHeadB,請寫一函式將兩連結串列中data值相同的結點刪除
有雙向迴圈連結串列結點定義為: struct node { int data; struct node *front,*next; }; 有兩個雙向迴圈連結串列A,B,知道其頭指標為:pHeadA,pHeadB,請寫一函式將兩連結串列中data值相同的結點刪
一個整數陣列中,有兩個元素只出現一次,其他所有元素均出現兩次。 找出只出現一次的那兩個元素。(java實現)
一個整數陣列中,有兩個元素只出現一次,其他所有元素均出現兩次。 找出只出現一次的那兩個元素。 思路大概是這樣的:因為除了這兩個只出現一次的數字外,其餘都是成對出現的,有一種運算子,異或運算,兩個相同的數字異或之後為0,所以將陣列中所有的數字依次異或,結果就是這個兩個支出現一
有兩個元組(('a'),('b')),(('c'),('d')),請生成[{'a':'c'},{'b':'d'}]格式
解這道題的方法很多,僅於此與大家共勉。 方式一: tup1=(('a'),('b')) tup2=(('c'),('d')) ret=zip(tup1,tup2) def func(tup): return {tup[0]:tup[1]} lst=[] ret2=map(func,r
兩個有序陣列,A[k]和B[k]長度都為k。求前k個最小的(a[i]+b[j])
設A={A1,A2,A3,A4,A5,A6,.......} ,B={B1,B2,B3,B4,B5,B6,.......} 因為A和B都是有序的陣列,必須充分的利用這點,可能有同學,看到有同學覺得這個題目比較容易,直接將所有的組合都計算出來,然後取最小的K個,其實出題的人是
給定一個target,問:陣列是否有兩個元素的和為target;
轉載:https://blog.csdn.net/u010515761/article/details/43451035題目:編寫一個函式,輸入為一個int型的陣列numbers和一個int型變數target,找到這個陣列中和為target的兩個元素,輸出其index。假設每
如何用純CSS將圖片填滿div,自適應容器大小,已有兩個不太完善的方案
我有一個模板,想按常規做一個div裡面放置一個img圖片,並且讓圖片鋪滿容器,自適應容器大小。HTML結構程式碼如下(在這個盒模型上,我已經放置了一些不重要的樣式)。<div style="height:270px;width:400px;border:2px blac
mysql和mariadb中字段拼接類型有兩個或多個字段或者一個字段和一個固定字符串拼接
str1 from 連接 字符串連接 一個 cat str 拼接 str2 MySQL中concat函數 CONCAT(str1,str2,…) 1 .兩個或多個字段連接 例:字段 a,b 表 tb1 語句: select conca
SDUT 3503 有兩個正整數,求N!的K進制的位數
pos class 進制 amp code cpp ref clu lan 有兩個正整數,求N!的K進制的位數 題目鏈接:action=showproblem&problemid=3503">http://sdutacm.org/sdutoj/prob
將兩個遞增的有序連結串列合併為一個遞增的有序連結串列。要求結果連結串列扔使用原來兩個連結串列的儲存空間,不另外佔用其他的儲存空間。表中不允許有重複的資料。
語言:C++ #include <iostream> using namespace std; typedef struct LNode { int data; LNode *next; }LNode,*LinkList; //建立連結串列 int CreateList(Li
php一個表單有兩個提交按鈕,分別對應不同的處理頁面,
通過隱藏表單hidden的屬性值應該可以解決 <form action="test.php" name='theForm'> <input type'hidden' name='act'> <input type="submit" name="ret