2022-04-05

Apr 6 In-Class Exercise.

Please post your solution to the Apr 6 In-Class Exercise to this thread.
Best,
Chris
Please post your solution to the Apr 6 In-Class Exercise to this thread. Best, Chris

-- Apr 6 In-Class Exercise
def GS(intervals):
    output = [intervals[0]]
    intervals.sort(key = lambda x : (x[0], -x[1]))
    for idx in range(1, len(intervals)):
        prev, cur = output[-1], intervals[idx]
        if cur[0] <= prev[1] and cur[1] <= prev[1]:
            output.pop()
        output.append(cur)
    return output
Time complexity: O(n log(n))
(Edited: 2022-04-06)
def GS(intervals): output = [intervals[0]] intervals.sort(key = lambda x : (x[0], -x[1])) for idx in range(1, len(intervals)): prev, cur = output[-1], intervals[idx] if cur[0] <= prev[1] and cur[1] <= prev[1]: output.pop() output.append(cur) return output Time complexity: O(n log(n))
2022-04-06

-- Apr 6 In-Class Exercise
for i in range(0,len(S)):
    for j in range(i,len(S)):
       if S[i][0] >= S[j][0] and S[i][1] <= S[j][i]
          remove S[i]
 
 Time Complexity: N^2
for i in range(0,len(S)): for j in range(i,len(S)): if S[i][0] >= S[j][0] and S[i][1] <= S[j][i] remove S[i] Time Complexity: N^2

-- Apr 6 In-Class Exercise
genGCList(list){
 sort list by end index //nlogn
 start, end = list[0]
 for I = 1 to list.len-1{ //n
  if end<list[I][1]{
   res.add(start, end)
   start, end = list[I]
  }
  else if start<list[I][0] start = list[I][0]
 }
 return res
} 
 
time complexity: O(nlogn)
(Edited: 2022-04-07)
<pre> genGCList(list){ sort list by end index //nlogn start, end = list[0] for I = 1 to list.len-1{ //n if end<list[I][1]{ res.add(start, end) start, end = list[I] } else if start<list[I][0] start = list[I][0] } return res } time complexity: O(nlogn) </pre>

-- Apr 6 In-Class Exercise
input: A list containing interval sets
output: A GC list
G_S_calc(List_intervals) 
 
  sort(List_intervals by start index)
  i = 0, j = 1;
  len = List_intervals.len;
  while(i<len && j<len)
    {
    if (List_intervals[i][0] == List_intervals[j][0] && List_intervals[i][1] > List_intervals[j][1])
      Eliminate List_intervals[i]
      i=j j=j+1 
    elseif (List_intervals[i][0] == List_intervals[j][0] && List_intervals[i][1] < List_intervals[j][1])
      Eliminate List_intervals[j]
      j=j+1; 
    elseif (List_intervals[i][1] < List_intervals[j][1])
      No Elimination // both are non related intervals
      i=j+1, j=j+2
    elseif (List_intervals[i][1] > List_intervals[j][1])
      Eliminate List_intervals[i]
      i=j j=j+1;
    }
  return List_intervals
<pre> input: A list containing interval sets output: A GC list G_S_calc(List_intervals) sort(List_intervals by start index) i = 0, j = 1; len = List_intervals.len; while(i<len && j<len) { if (List_intervals[i][0] == List_intervals[j][0] && List_intervals[i][1] > List_intervals[j][1]) Eliminate List_intervals[i] i=j j=j+1 elseif (List_intervals[i][0] == List_intervals[j][0] && List_intervals[i][1] < List_intervals[j][1]) Eliminate List_intervals[j] j=j+1; elseif (List_intervals[i][1] < List_intervals[j][1]) No Elimination // both are non related intervals i=j+1, j=j+2 elseif (List_intervals[i][1] > List_intervals[j][1]) Eliminate List_intervals[i] i=j j=j+1; } return List_intervals </pre>
2022-04-09

-- Apr 6 In-Class Exercise
def computeGS(intervals):
    intervals = sorted(intervals, reverse=True)
    min_val, max_val = float("-inf"), float("-inf")
    for idx, (start, end) in enumerate(intervals):
        if start <= min_val and end >= max_val:
            intervals.pop(idx)
        else:
            min_val, max_val = start, end
    return intervals
(Edited: 2022-04-09)
def computeGS(intervals): intervals = sorted(intervals, reverse=True) min_val, max_val = float("-inf"), float("-inf") for idx, (start, end) in enumerate(intervals): if start <= min_val and end >= max_val: intervals.pop(idx) else: min_val, max_val = start, end return intervals

-- Apr 6 In-Class Exercise
def computeGS(intervals):
     intervals.sort(key = lambda i : i[0])
     output = [intervals[0]]
        
     for start, end in intervals[1:]:
            lastEnd = output[-1][1]
            
            if start <= lastEnd:
                output[-1][1] = max(lastEnd, end)
            else:
                output.append([start,end])
        
     return output
     Time complexity: O(nlogn)
(Edited: 2022-04-11)
def computeGS(intervals): intervals.sort(key = lambda i : i[0]) output = [intervals[0]] for start, end in intervals[1:]: lastEnd = output[-1][1] if start <= lastEnd: output[-1][1] = max(lastEnd, end) else: output.append([start,end]) return output Time complexity: O(nlogn)

-- Apr 6 In-Class Exercise
 GC(list of intervals)
{
  Sort the list 
  Pointer1 = 0;
  Pointer2 = 1;
  length = length of list;
  while(Pointer1 < length and Pointer2 < length)
    {
    if (list[pointer1][0] == list[pointer2][0]   and list[pointer1][1] > list[pointer2][1]    
  Delete list[pointer1]
  pointer1 = poiner2;
  pointer2 ++;
 elseif (list[pointer1][0] == list[pointer2][0] and list[pointer1][1] < list[pointer2][1]    
  Delete list[pointer2]
  pointer2 ++;
  elseif (list[pointer1][1] > list[pointer2][1])
   Delete list[pointer1]
  pointer1 = poiner2;
  pointer2 ++;
  elseif (list[pointer1][1] < list[pointer2][1])
   pointer1 = poiner2 + 1;
   pointer2 = pointer2 + 2;
    }
  Return(list)
GC(list of intervals) { Sort the list Pointer1 = 0; Pointer2 = 1; length = length of list; while(Pointer1 < length and Pointer2 < length) { if (list[pointer1][0] == list[pointer2][0] and list[pointer1][1] > list[pointer2][1] Delete list[pointer1] pointer1 = poiner2; pointer2 ++; elseif (list[pointer1][0] == list[pointer2][0] and list[pointer1][1] < list[pointer2][1] Delete list[pointer2] pointer2 ++; elseif (list[pointer1][1] > list[pointer2][1]) Delete list[pointer1] pointer1 = poiner2; pointer2 ++; elseif (list[pointer1][1] < list[pointer2][1]) pointer1 = poiner2 + 1; pointer2 = pointer2 + 2; } Return(list)
2022-04-10

-- Apr 6 In-Class Exercise
func GClist (sList)
	sort sList by first interval ( or interval 0 ) //nLogn
	while not at end of list 
		if firstInterval <= firstInterval of next pair
			remove interval pair 
	return sList 
	time complexity O(nlog(n)^2)
func GClist (sList) sort sList by first interval ( or interval 0 ) //nLogn while not at end of list if firstInterval <= firstInterval of next pair remove interval pair return sList time complexity O(nlog(n)^2)

-- Apr 6 In-Class Exercise
GCList(list){
 sort list by end index
 start, end = list[0]
 for i = 1 to list.len-1{ //n
  if end<list[i][1]{
   output.add(start, end)
   start, end = list[i]
  }
  else if start<list[i][0] start = list[i][0]
 }
 return output
} 
 
Time complexity: O(nlogn)
(Edited: 2022-04-11)
<pre> GCList(list){ sort list by end index start, end = list[0] for i = 1 to list.len-1{ //n if end<list[i][1]{ output.add(start, end) start, end = list[i] } else if start<list[i][0] start = list[i][0] } return output } Time complexity: O(nlogn) </pre>
[ Next ]
X