//題目1:找到陣列中出現次數超過一半的元素
//解法:使用另外不到1/2的元素與所求元素進行抵消
//整個陣列抵消不同的兩個數,則超過1/2的元素還是原來的元素
public class main ));
} public static int findnum(int input) throws exception
if(input[i] == num)else
}return num;
} }
//題目2:找到陣列中3個出現次數都超過總數1/4的元素
//解法:與題目1思路基本相同,建立三個num,讓這三個num中的數字與另外不到1/4的數字進行抵消
public class main ));
} public static int findnum(int input) throws exception else if(input[i] == num2 && count2!=0)else if(input[i] == num3 && count3!=0)
if(count1 == 0)
if(count2 == 0)
if(count3 == 0)
count1--;
count2--;
count3--;
}return new int;
} }
程式設計之美 2 3 尋找發帖「水王」
題目 尋找乙個id列表中,有乙個id超過了總數的一半,找出這個id 分析 可以對id進行排序,因為需要尋找的id超過了一半,所以該id列表id n 中,id n 2 一定是這個id值。複雜度為o nlgn 1 如果用排序這種方法解決的話,複雜度應該就維持在這個水平,不會降低。再思考一下,難道一定需要...
程式設計之美2 3 尋找發帖水王
這道題目由於不容易寫測試用例,所以,可以把題目轉換為 在乙個陣列中,有乙個數字出現的次數超過了陣列大小的一半,這和題目原意是一樣的。這道題目的思想是我們同時去掉陣列中兩個不一樣的數字,那麼,陣列中原來存在的規律是不變的 僅針對這個題目 好吧,還是先給出函式宣告 2.3 尋找發帖水王 bool dut...
程式設計之美 2 3 尋找發帖「水王」
1.簡述 原題 簡略的說,就是乙個id列表,其中每個id都可能重複出現,其中乙個id的重複出現個數超過了列表長度的一半。要求快速找到這個id。擴充套件 id列表中,有三個id,這三個id重複出現的次數,都超過了列表長度的1 4。要求快速找到這個id。2.思路 原題的思路是儲存乙個id和該id的計數,...