Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 89af38d

Browse files
Add 287 find theduplicate number Solution in python (#107)
* Add solution for 278-firstBadVersion. * Add python solution for 287_FindTheDuplicateNumber * Remove extra new line.
1 parent 4d361d4 commit 89af38d

File tree

1 file changed

+25
-0
lines changed
  • Algorithms/Medium/287_FindTheDuplicateNumber

1 file changed

+25
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from typing import List
2+
3+
class Solution:
4+
def _get_count_of_equal_or_less(self, num_arr: List[int], value: int) -> int:
5+
return len([num for num in num_arr if num <= value])
6+
7+
def findDuplicate(self, nums: List[int]) -> int:
8+
left = 1
9+
right = len(nums) - 1
10+
11+
duplicate_number = -1
12+
13+
while left <= right:
14+
mid = (left + right)//2
15+
16+
equal_or_less_count = self._get_count_of_equal_or_less(num_arr=nums, value=mid)
17+
18+
if equal_or_less_count > mid:
19+
right = mid - 1
20+
duplicate_number = mid
21+
else:
22+
left = mid + 1
23+
24+
return duplicate_number
25+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /