diff --git a/Problem1.py b/Problem1.py new file mode 100644 index 00000000..dde54717 --- /dev/null +++ b/Problem1.py @@ -0,0 +1,24 @@ +class Solution(object): + def searchMatrix(self, matrix, target): + m =len(matrix) + n =len(matrix[0]) + l=0 + r= m*n-1 + + while l<=r: + mid_index= (l+r)//2 + i = mid_index // n + j = mid_index % n + mid_term = matrix[i][j] + + if target == mid_term: + return True + elif target < mid_term: + r = mid_index - 1 + else: + l = mid_index + 1 + + return False + + + diff --git a/Problem1.py.rtf b/Problem1.py.rtf new file mode 100644 index 00000000..62dda77f --- /dev/null +++ b/Problem1.py.rtf @@ -0,0 +1,30 @@ +{\rtf1\ansi\ansicpg1252\cocoartf2822 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\fs24 \cf0 class Solution(object):\ + def searchMatrix(self, matrix, target):\ + m = len(matrix)\ + n = len(matrix[0])\ + l = 0\ + r = m * n - 1\ +\ + while l <= r:\ + mid_index = (l + r) // 2\ + i = mid_index // n # row index\ + j = mid_index % n # column index\ +\ + mid_term = matrix[i][j]\ +\ + if target == mid_term:\ + return True\ + elif target < mid_term:\ + r = mid_index - 1\ + else:\ + l = mid_index + 1\ +\ + return False\ +} \ No newline at end of file diff --git a/Problem2.py b/Problem2.py new file mode 100644 index 00000000..3391bc3c --- /dev/null +++ b/Problem2.py @@ -0,0 +1,24 @@ +class Solution(object): + def search(self, nums, target): + l = 0 + h = len(nums) - 1 + + while l <= h: + mid_index = (l+h)//2 + mid = nums[mid_index] + + if target == mid: + return mid_index + + elif nums[l] <= mid : + if nums[l] < target < mid : + h = mid_index - 1 + else: + l = mid_index + 1 + + else: + if mid < target < nums[h]: + l = mid_index + 1 + else: + h = mid_index - 1 + return -1