演算法學習 求兩陣列求差數(Java,三重境界)

2021-08-07 04:53:57 字數 1287 閱讀 8408

【題目描述】:兩個陣列,乙個a陣列200個,,另乙個b陣列199個,兩個陣列亂序,但是差乙個數,,,找出差的是那個數。

一。境界1(60分)

遍歷a陣列,對每個數執行操作

遍歷b陣列對比是否存在此數。

/**

* created by zsl on 2017/8/20.

*/public

class

main ;

int arrayb = ;//相差8

int a = 0;

boolean result = false;

for (int i = 0; i < arraya.length; i++)

}if (!result) }}

}

二。境界2(80分)

利用數字原理,對第乙個陣列求和,

對第二個陣列求和

求差即所求數。

public

class main ;

int arrayb = ;//相差8

int suma = 0;

int sumb = 0;

for (int i = 0; i < arraya.length; i++)

suma += arraya[i];//求和

for (int j = 0; j < arrayb.length; j++)

sumb += arrayb[j];//求和

system.out.println(suma - sumb);//求差

}}

三。境界3(100分)

利用位操作中的「異或」,

兩個相同的數求異或結果為0,0和任何數求異或為任何數本身

用0和a陣列及b陣列求異或

public

class main ;

int arrayb = ;//相差8

int result = 0;

for (int i = 0; i < arraya.length; i++)

result ^= arraya[i];//求異或

for (int j = 0; j < arrayb.length; j++)

result ^= arrayb[j];//求異或

system.out.println(result);

}}

神器的演算法,,還是6。。

演算法學習 陣列

乙個陣列存放了2n 1個整數,其中有n個數出現了2次,1個數出現了1次,找出出現1次的數是多少?方法一 借助輔助陣列 長度為n 1,元素為一結構體 包含數值和 個數兩個成員 進行計數,但是時間複雜度為o n n 空間複雜度為o n 1 本來是想把val定義為結構體的,但由於結構體是值型別,不是引用型...

演算法學習 陣列

乙個陣列存放了2n 1個整數,其中有n個數出現了2次,1個數出現了1次,找出出現1次的數是多少?方法一 借助輔助陣列 長度為n 1,元素為一結構體 包含數值和 個數兩個成員 進行計數,但是時間複雜度為o n n 空間複雜度為o n 1 本來是想把val定義為結構體的,但由於結構體是值型別,不是引用型...

演算法學習 求割點

強連通分量 割點 去掉這個點之後,圖會被分成多個點集,點集之間的點無法相互到達 include include includeusing namespace std const int maxn 100010 struct note edge 2 maxn int st maxn top 0 voi...