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

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

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

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

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

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

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

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


这周题目挺简单

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

题目地址: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;
    }
};



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值