001-算法题:一个数组,找出其中最小连续的子数组,使得这个子数组排序后,整体数组是有序的
def get_sored_sub_list(org_list): ''' 思路: 有序一个数组 原数组跟有序数组比较,从前到后,第一个值不相等的下标就是开始的下标 原数组跟有序数组比较,从后向前,第一个值不相等的下标+1就是结束的下标 :param org_list: :return: ''' sorted_list = list(set(org_list)) # 兼容了给出的就是已经排序的,那直接返回原列表 start_index = 0 end_index = len(org_list) for x in range(len(org_list)): if org_list[x] != sorted_list[x]: start_index = x break for x in range(len(org_list)-1, -1, -1): if org_list[x] != sorted_list[x]: end_index = x + 1 break return org_list[start_index:end_index] org1_list = [1, 4, 6, 3, 2, 7, 16, 8, 15] org1_list1 = [1, 3, 4, 7, 8, 15] print(get_sored_sub_list(org1_list)) print(get_sored_sub_list(org1_list1))