码迷,mamicode.com
首页 > 其他好文 > 详细

315. Count of Smaller Numbers After Self

时间:2019-10-08 22:05:52      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:tsm   list   sea   nbsp   and   for   class   logs   tco   

题目:

/**
 * 315. Count of Smaller Numbers After Self
 * https://leetcode.com/problems/count-of-smaller-numbers-after-self/description/
 * https://www.cnblogs.com/grandyang/p/5078490.html
 *
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:

Input: [5,2,6,1]
Output: [2,1,1,0]
Explanation:
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.
 * */

首先使用brute force方法,结果accept了:

class Solution {
    fun countSmaller(nums: IntArray): List<Int> {
        val result = ArrayList<Int>()
        val size = nums.size
        for (i in 0 until size) {
            help(size, i, nums, result)
        }
    return result
    }

    private fun help(size: Int, currentIndex: Int, nums: IntArray, result: ArrayList<Int>) {
        var count = 0
        val currentNum = nums[currentIndex]
        var newIndex = currentIndex + 1
        if (newIndex == size) {
            newIndex = size - 1
        }
        for (i in newIndex until size) {
            if (nums[i] < currentNum) {
                count++
            }
        }
        result.add(count)
    }
}

 

我们要用binary search去优化:

 

315. Count of Smaller Numbers After Self

标签:tsm   list   sea   nbsp   and   for   class   logs   tco   

原文地址:https://www.cnblogs.com/johnnyzhao/p/11638015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!