算法练习笔记(四)— 分治算法

来源:互联网 发布:windows xp mse 编辑:程序博客网 时间:2024/04/30 06:25

作为一个计算机专业的学生

傅里叶早已成为了我们的熟识

各式各样的傅里叶凭借其繁复高贵的外观接近我们,又在各种题目算式中出现刁难我们

如果看了此文你还不懂傅里叶变换,那就过来掐死我吧【完整版】一文给了我很多启发

课本上生涩难懂的公式以及繁复的算式,最终归结起来,其实都是那些最为简单基础东西的叠加

傅里叶公式是这样,分治算法是这样,这周所学的快速傅里叶变换也是如此

难的是人们投入与之等值的时间去理解贯通其中道理


这周题目挺简单

简单到我怀疑世界 不想说话

题目地址:https://leetcode.com/problems/count-of-smaller-numbers-after-self/

题目:Count of Smaller Numbers After Self

描述:

You are given an integer array nums and you have to return a new counts array. The counts array has the property where counts[i] is the number of smaller elements to the right of nums[i].

Example:

Given nums = [5, 2, 6, 1]To the right of 5 there are 2 smaller elements (2 and 1).To the right of 2 there is only 1 smaller element (1).To the right of 6 there is 1 smaller element (1).To the right of 1 there is 0 smaller element.

Return the array [2, 1, 1, 0].

解答:

class Solution {public:    int Countit(vector<int> & nums, int ind, int size,int key, int count){        if(ind >= size)return count;        if(nums[ind] < key) count ++;        return  Countit(nums, ind + 1, size, key, count);    }        vector<int> countSmaller(vector<int>& nums) {        int size = nums.size();        vector<int> count;        for(int i = 0; i < size; i ++){            int c = Countit(nums, i, size, nums[i], 0);            count.push_back(c);        }        return count;    }};



0 0