|
@@ -0,0 +1,29 @@
|
|
|
|
|
+// 169. Majority Element
|
|
|
|
|
+
|
|
|
|
|
+function majorityElement(nums: number[]): number {
|
|
|
|
|
+ var ns: number = nums.length;
|
|
|
|
|
+ var ns_half: number = ns / 2;
|
|
|
|
|
+
|
|
|
|
|
+ nums.sort((a, b) => a - b);
|
|
|
|
|
+
|
|
|
|
|
+ var count: number = 0;
|
|
|
|
|
+ var ln: number = nums[0];
|
|
|
|
|
+ for ( var i = 0; i < ns; ++i ) {
|
|
|
|
|
+ if ( ln != nums[i] ) { count = 0; }
|
|
|
|
|
+ ln = nums[i];
|
|
|
|
|
+ ++count;
|
|
|
|
|
+ if ( count > ns_half ) { return ln; }
|
|
|
|
|
+ }
|
|
|
|
|
+ return -1;
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+function main() {
|
|
|
|
|
+ function r(n: number[], exp: number) {
|
|
|
|
|
+ console.log(`majorityElement(${n}) = ${majorityElement(n)} | exp: ${exp}`)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ r([3,2,3], 3)
|
|
|
|
|
+ r([2,2,1,1,1,2,2], 2)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+main()
|