1001力扣算法题(题号1859、1122、面试16.16)

106 阅读1分钟

国庆节写了几道数组的题目,分别是

(1859)将句子排序:leetcode.cn/problems/so…

(1122)数组的相对排序:leetcode.cn/problems/re…

(面试16.16)部分排序:leetcode.cn/problems/su…

前两道较简单,后一道中等难度。

(1859)将句子排序

题目如下:

1.jpg

其示例如下:

1.jpg

我的做法是先遍历切片,根据每个单词末尾字符得到新字符串的顺序,注意去掉数字时别忘了拼接空格。

以下是我的代码:

1.jpg

提交记录:

1.jpg

(1122)数组的相对排序

题目如下:

1.jpg

其示例如下:

1.jpg

采用sort包里的自定义算法,以切片值为map键,切片索引为map值,将arr2包里的元素映射到map。在自定义算法里,①当arr1索引为i,j的值a,b都存在map里,则让索引小的排前面。②当a存在b不存在,让a排b前面。③当a不存在b存在,则让b排a前面。④当a,b都不存在,则值小的排前面。

以下是我的代码:

1.jpg

提交记录:

1.jpg

(面试16.16)部分排序

题目如下:

1.jpg

其示例如下:

1.jpg

首先,创建一个与原始数组相同的副本 sortedNums,并对其进行排序。然后,我们使用两个循环分别从数组的开头和结尾开始,找到第一个不匹配的元素,这些元素的索引分别作为起始位置 start 和结束位置 end。最后,返回 [start, end] 作为结果。

以下是我的代码:

1.jpg

提交记录:

1.jpg