Algorithm 题解目录 | Thinkwee's Blog



Algorithm 题解目录 | Thinkwee's Blog

  • 75:给出一个只包含0,1,2的数列,排序形成[0,0,…,0,1,…,1,2,…,2]的形式,在原数列上修改。借鉴Lomuto partition algorithm,维护三个区间[0,i],[i,j],[j,k]为0,1,2的范围,按优先级,若当前数为2或1或0,先将nums[k]=2,k++,若当前数为1或0,则nums[j]=1,j++,若当前数为0,则nums[i]=0,i++,越往后能覆盖前面的,优先级越高。
  • 164:给出一个无序数列,请在O(n)时间复杂度内找到数列有序化后相隔元素差最大值。桶排序,设数列中最大值最小值分别为max,min,易得这个相邻元素差最大值肯定大于(max-min)/(n-1)并设这个值为gap,n是数列长度。将数列的取值区间[min,max]以(max-min)/(n-1)为间隔分成nums个桶,nums是int((max - min) / gap + 1),把数列各个元素分到桶中,每个桶只存对应区间内的最大元素和最小元素,把那么最大间隔肯定在相邻两个桶的边界处(前一个桶的最大值和后一个桶的最小值),因为桶内的最大间隔小于gap。最后遍历一遍桶就可以了。

  • Read full article from Algorithm 题解目录 | Thinkwee's Blog


    No comments:

    Post a Comment

    Labels

    Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

    Popular Posts