315.leetcode Count of Smaller Numbers After Self(hard)[利用二分查找 空间换取时间的思想]
来源:互联网 发布:电视的mac什么意思 编辑:程序博客网 时间:2024/06/16 22:46
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]
.
这个题目的意思是返回每个数字右边比它小的数字个数,如果按照暴力破解需要O(n2)的时间复杂度,这里利用一个状态有序数组利用二分查找找到每次应该插入元素的位置,然后返回当前元素的下标就是所求的结果。当然也可以利用stl中low_bound等算法来查找。
class Solution {public: vector<int> countSmaller(vector<int>& nums) { int n = nums.size(); vector<int> result(n); vector<int> temp; for(int i=n-1;i>=0;i--) { int low = 0; int high = temp.size(); while(low<high) { int mid = (low+high)/2; if(temp[mid]<nums[i]) low = mid+1; else high = mid; } result[i]= low; temp.insert(temp.begin()+low,nums[i]); } return result; }};
0 0
- 315.leetcode Count of Smaller Numbers After Self(hard)[利用二分查找 空间换取时间的思想]
- Leetcode 315. Count of Smaller Numbers After Self[hard]
- leetcode 315. Count of Smaller Numbers After Self(Hard)
- Hard-题目11:315. Count of Smaller Numbers After Self
- 315. Count of Smaller Numbers After Self Hard
- leetcode Count of Smaller Numbers After Self
- leetcode Count of Smaller Numbers After Self
- leetcode Count of Smaller Numbers After Self
- Count of Smaller Numbers After Self | LeetCode
- leetcode Count of Smaller Numbers After Self
- LeetCode Count of Smaller Numbers After Self
- [Leetcode]Count of Smaller Numbers After Self
- leetcode - Count of Smaller Numbers After Self
- leetcode:Count of Smaller Numbers After Self
- 【Leetcode】Count of Smaller Numbers After Self
- 【leetCode】 Count of Smaller Numbers After Self
- [Leetcode] Count of Smaller Numbers After Self
- LeetCode -- Count of Smaller Numbers After Self
- spark streaming programming guide 综述(一)
- 浏览器探究 - HTML5规范之Application Cache(2)
- linux之普通用户具有什么样的权限才能执行shell脚本???
- 环信修改昵称和头像
- JAVA渣渣感悟——三目运算符(三元运算符)的注意事项
- 315.leetcode Count of Smaller Numbers After Self(hard)[利用二分查找 空间换取时间的思想]
- 面试题43:n个骰子的点数
- 【面向对象】----概念--创建对象,匿名对象,类类型
- 编译原理之标识符拆分
- jquery自定义函数的多种方法
- adb配置环境变量以及常用命令
- LeetCode 404. Sum of Left Leaves 题解(C++)
- Play with caffe on ubuntu
- 安卓面试问题