Advertisement
nirajs

nautinix 2

Feb 5th, 2024
879
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1. '''
  2. nums = [1,2,3,1]
  3. output : 2
  4.  
  5. [1,2,3,1] ->  2
  6. [1,1,1,1] -> -1
  7.  
  8. [1,2,3,4,5,[6],3,4,[8],3,1,2,3,4]
  9.  
  10. -> 4, 8 ... 7
  11.  
  12.  
  13.  
  14. '''
  15.  
  16.  
  17.  
  18. def findPeakElement(nums) -> int:
  19.    
  20.     lo, hi = 0, len(nums) - 1
  21.    
  22.     while (lo <= hi):
  23.         mid = (lo + hi) // 2
  24.         print("mid", mid)
  25.         # 2 1 .....
  26.         if (mid == 0 and nums[mid] > nums[mid + 1]):
  27.             return mid
  28.        
  29.         # else:
  30.         #     return -1
  31.          
  32.         # ...... 1 2    
  33.         if (mid == len(nums)- 1) and nums[mid] > nums[mid-1]:
  34.             return mid
  35.            
  36.         # else:
  37.         #     return -1
  38.            
  39.         # .... 3 5  1  ..    
  40.         if (nums[mid-1] < nums[mid] > nums[mid+1]):
  41.             return mid
  42.            
  43.         # go towards left
  44.         if (nums[mid-1] > nums[mid]):
  45.             hi = mid - 1
  46.        
  47.         else:
  48.             lo = mid + 1
  49.            
  50.     return -1
  51.    
  52. nums = [1,2,3,4]  
  53. """
  54. 4
  55. lo = 0 -> 1
  56. hi = 3.   3
  57.  
  58. mid -> 1 -> 2
  59. """
  60. print(findPeakElement(nums))
  61.            
  62.            
  63.        
  64.            
  65.              
  66.        
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement