演算法設計與應用基礎 第二週(1)

2021-07-27 16:50:05 字數 708 閱讀 6379

add to list

description

submission

solutions

⌊ n/2 ⌋times.

you may assume that the array is non-empty and the majority element always exist in the array.

演算法分析:結合本週所講的divide and conquer,先嘗試將該問題分解為兩個小問題:將該陣列分為前後兩個大小相等或者相差乙個元素的陣列,分別尋找這兩個陣列中出現次數最多的元素(同理對這兩個陣列繼續進行分解,直到只有乙個元素為止),對於這兩個分別最大的元素,1如果它們相等,則就是要找的元素;2 它們不相等,則遍歷對應的陣列比較它們誰出現的次數更多(複雜度為o(n) )。遞推式為t(n) =2t(n/2) +2o(n),由主定理可知複雜度為o(nlogn)。**如下

class solution 

private:

int majority(vector& nums,int begin,int end)

//if(num1>num2)

//return front;

//else

//return back;

return (num1>num2)?front:back;}}

}};

演算法設計與應用基礎作業第二週

53.maximum subarray descripyion find the contiguous subarray within an array containing at least one number which has the largest sum.for example,give...

演算法分析與設計課程作業第二週 1

上一周學了分而治之的演算法策略,這週就先找了一題貼了此標籤的題試試手。find the contiguous subarray within an array containing at least one number which has the largest sum.for example,g...

演算法設計與應用基礎 第七周

intersection of two arrays ii given two arrays,write a function to compute their intersection.example given nums1 1,2,2,1 nums2 2,2 return 2,2 note th...