from collections import defaultdict graph=defaultdict(list) v,e=map(int,input().split()) for i in range(e): u,v=map(str,input().split()) graph[u].append(v) graph[v].append(u) for i in graph: print(i,"->",graph[i]) Input: 7 9 A B A C A F C E C F C D D E D G G F Output: F -> ['A', 'C', 'G'] C -> ['A', 'E', 'F', 'D'] G -> ['D', 'F'] D -> ['C', 'E', 'G'] A -> ['B', 'C', 'F'] E -> ['C', 'D'] B -> ['A']
You are given an array (zero-indexed) of N non-negative integers, A0, A1 ,…, AN-1.
Find the minimum sub-array Al, Al+1,…, Ar so if we sort(in ascending order) that sub-array, then the whole array should get sorted.
If A is already sorted, output -1.
Example :
Input 1:
A = [1, 3, 2, 4, 5]
Return: [1, 2]
Input 2:
A = [1, 2, 3, 4, 5]
Return: [-1]
In the above example(Input 1), if we sort the subarray A1, A2, then whole array A should get sorted.ut
Solution:
class Solution:
# @param A : list of integers
# @return a list of integers
def subUnsort(self, A):
s_a=sorted(A)
if A==s_a:
return [-1]
l=len(A)
minI=-1
maxI=l
f1=True
f2=True
for i in range(l):
if A[i]!=s_a[i] and i>minI and f1==True:
minI=i
f1=False
if A[l-i-1]!=s_a[l-i-1] and l-1-i<maxI and f2==True:
maxI=l-i-1
f2=False
if f1==False and f2==False:
break
return [minI,maxI]
Screenshot:
Comments
Post a Comment