57 think less and code more...
This commit is contained in:
		
							
								
								
									
										81
									
								
								57-240605-pass/main.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								57-240605-pass/main.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,81 @@ | ||||
| class Solution: | ||||
|     def insert(self, intervals: list[list[int]], newInterval: list[int]) -> list[list[int]]: | ||||
|         l = newInterval[0] | ||||
|         r = newInterval[1] | ||||
|         if r < intervals[0][0]: | ||||
|             intervals.insert(0, newInterval) | ||||
|             return intervals | ||||
|         if l > intervals[-1][1]: | ||||
|             intervals.append(newInterval) | ||||
|             return intervals | ||||
|         nl = 0 | ||||
|         nl_f = False | ||||
|         nl_ff = False | ||||
|         nr = len(intervals)  | ||||
|         nr_f = False | ||||
|         nr_ff = False | ||||
|         for ind, interval in enumerate(intervals): | ||||
|             left = interval[0] | ||||
|             right = interval[1] | ||||
|             if l >= left and l <= right: | ||||
|                 nl_f = True | ||||
|                 nl = ind | ||||
|             if r >= left and r <= right: | ||||
|                 nr_f = True | ||||
|                 nr = ind + 1 | ||||
|  | ||||
|         if nl_f == False: | ||||
|             for i in range(1, len(intervals)): | ||||
|                 if l > intervals[i - 1][1] and l < intervals[i][0]: | ||||
|                     nl = i | ||||
|                     nl_ff = True | ||||
|                     break | ||||
|  | ||||
|         if nr_f == False: | ||||
|              for i in range(1, len(intervals)): | ||||
|                 if r > intervals[i - 1][1] and r < intervals[i][0]: | ||||
|                     nr = i | ||||
|                     nr_ff = True | ||||
|                     break | ||||
|  | ||||
|         print(nl, nr, nl_f, nr_f) | ||||
|  | ||||
|         rlt = [] | ||||
|         for i in range(nl): | ||||
|             rlt.append(intervals[i]) | ||||
|         nl_l = intervals[nl][0] | ||||
|         if nl_f == False: | ||||
|             nl_l = l | ||||
|         if nr_ff == True or nr_f == True: | ||||
|             nr = nr - 1 | ||||
|             nr_r = intervals[nr][1] | ||||
|             nr = nr + 1 | ||||
|  | ||||
|         if nr_f == False: | ||||
|             nr_r = r | ||||
|          | ||||
|         rlt.append([nl_l, nr_r]) | ||||
|  | ||||
|         print(rlt) | ||||
|         for i in range(nr, len(intervals)): | ||||
|             rlt.append(intervals[i]) | ||||
|         return rlt | ||||
|  | ||||
| intervals = [[1,3], [6,9]] | ||||
| newInterval = [2,5] | ||||
| sol = Solution() | ||||
| print(sol.insert(intervals=intervals, newInterval=newInterval)) | ||||
| intervals = [[1,2], [3,5], [6,7], [8,10],[12, 16]] | ||||
| newInterval = [4, 8] | ||||
| print(sol.insert(intervals=intervals, newInterval=newInterval)) | ||||
|  | ||||
| intervals = [[1,2], [3,5], [6,7], [8,10],[12, 16]] | ||||
| newInterval = [0, 16] | ||||
| print(sol.insert(intervals=intervals, newInterval=newInterval)) | ||||
| print() | ||||
| intervals = [[1,5]] | ||||
| newInterval = [6, 18] | ||||
| print(sol.insert(intervals=intervals, newInterval=newInterval)) | ||||
|  | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user