- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

Suppose we have a list of numbers called nums and another value k. Let us consider an operation where we increase some element by one. We can perform at most k times, we have to find the value of the most frequently occurring number we can obtain. If there are more than one solution, select the smallest possible number.

So, if the input is like nums = [1, 0, 0, 0, 8, 8, 8, 8] k = 8, then the output will be 8, as we can increase 1, 7 times to get 8, and increase any 0 to 1, so, we get [8, 1, 0, 0, 8, 8, 8, 8]. So the result is 8.

To solve this, we will follow these steps:

- sort the list nums
- low := 0, high := 0
- dist := 0, best := 0
- ret := -1
- while high < size of nums, do
- if high > 0 and nums[high] is not same as nums[high - 1], then
- dist := dist +(high - low) *(nums[high] - nums[high - 1])

- high := high + 1
- while dist > k, do
- dist := dist - nums[high - 1] - nums[low]
- low := low + 1

- if high - low > best, then
- best := high - low
- ret := nums[high - 1]

- return ret

- if high > 0 and nums[high] is not same as nums[high - 1], then

Let us see the following implementation to get better understanding:

class Solution: def solve(self, nums, k): nums.sort() low, high = 0, 0 dist = 0 best = 0 ret = -1 while high < len(nums): if high > 0 and nums[high] != nums[high - 1]: dist += (high - low) * (nums[high] - nums[high - 1]) high += 1 while dist > k: dist -= nums[high - 1] - nums[low] low += 1 if high - low > best: best = high - low ret = nums[high - 1] return ret ob = Solution() nums = [1, 0, 0, 0, 8, 8, 8, 8] k = 8 print(ob.solve(nums, k))

[1, 0, 0, 0, 8, 8, 8, 8], 8

8

- Related Questions & Answers
- Program to find longest equivalent sublist after K increments in Python
- Python program to find the most occurring character and its count
- Program to find least number of unique integers after K removals using Python
- The most occurring number in a string using Regex in python
- Program to find k partitions after truncating sentence using Python
- Java Program to Find the Number Occurring Odd Number of Times
- Python Program to Find Element Occurring Odd Number of Times in a List
- Program to find sum of rectangle whose sum at most k in Python
- Program to find minimum possible maximum value after k operations in python
- Program to find string after deleting k consecutive duplicate characters in python
- Program to find state of prison cells after k days in python
- Count substrings with each character occurring at most k times in C++
- C/C++ Program to Find the Number Occurring Odd Number of Times?
- Largest permutation after at most k swaps in C++
- Program to find minimum number colors remain after merging in Python

Advertisements