分享好友 最新动态首页 最新动态分类 切换频道
C LeedCode之排序一
2024-12-27 00:04

一、面试题 16.16. 部分排序

C LeedCode之排序一

给定一个整数数组,编写一个函数,找出索引m和n,只要将索引区间[m,n]的元素排好序,整个数组就是有序的。注意:n-m尽量最小,也就是说,找出符合条件的最短序列。函数返回值为[m,n],若不存在这样的m和n(例如整个数组是有序的),请返回[-1,-1]。

示例:

输入: [1,2,4,7,10,11,7,12,6,7,16,18,19]
输出: [3,9]

 二、1387. 将整数按权重排序

我们将整数 x 的 权重 定义为按照下述规则将 x 变成 1 所需要的步数:

如果 x 是偶数,那么 x = x / 2;如果 x 是奇数,那么 x = 3 * x + 1

比方说,x=3 的权重为 7 。因为 3 需要 7 步变成 1 (3 --> 10 --> 5 --> 16 --> 8 --> 4 --> 2 --> 1)。

给你三个整数 lo, hi 和 k 。你的任务是将区间 [lo, hi] 之间的整数按照它们的权重 升序排序 ,如果大于等于 2 个整数有 相同 的权重,那么按照数字自身的数值 升序排序 。

请你返回区间 [lo, hi] 之间的整数按权重排序后的第 k 个数。

注意,题目保证对于任意整数 x (lo <= x <= hi) ,它变成 1 所需要的步数是一个 32 位有符号整数

示例 1:

输入:lo = 12, hi = 15, k = 2
输出:13
解释:12 的权重为 9(12 --> 6 --> 3 --> 10 --> 5 --> 16 --> 8 --> 4 --> 2 --> 1)
13 的权重为 9
14 的权重为 17
15 的权重为 17
区间内的数按权重排序以后的结果为 [12,13,14,15] 。对于 k = 2 ,答案是第二个整数也就是 13 。
注意,12 和 13 有相同的权重,所以我们按照它们本身升序排序。14 和 15 同理。

三、148. 排序链表

给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。

进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?

示例 1:输入:head = [4,2,1,3]  输出:[1,2,3,4]

方法一:将链表中的数值取出排序,然后替换

方法二:快速排序【升级版】

四、969. 煎饼排序

给你一个整数数组 arr ,请使用 煎饼翻转 完成对数组的排序。

一次煎饼翻转的执行过程如下:

选择一个整数 k ,1 <= k <= arr.length
反转子数组 arr[0...k-1](下标从 0 开始)
例如,arr = [3,2,1,4] ,选择 k = 3 进行一次煎饼翻转,反转子数组 [3,2,1] ,得到 arr = [1,2,3,4] 。

以数组形式返回能使 arr 有序的煎饼翻转操作所对应的 k 值序列。任何将数组排序且翻转次数在 10 * arr.length 范围内的有效答案都将被判断为正确。

示例 1:

输入:[3,2,4,1]
输出:[4,2,4,3]
解释:
我们执行 4 次煎饼翻转,k 值分别为 4,2,4,和 3。
初始状态 arr = [3, 2, 4, 1]
第一次翻转后(k = 4):arr = [1, 4, 2, 3]
第二次翻转后(k = 2):arr = [4, 1, 2, 3]
第三次翻转后(k = 4):arr = [3, 2, 1, 4]
第四次翻转后(k = 3):arr = [1, 2, 3, 4],此时已完成排序。

 五、剑指 Offer 45. 把数组排成最小的数

输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。

示例 1:  输入: 输出: "

 179. 最大数

给定一组非负整数 ,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。

示例 1:输入输出:

 六、1471. 数组中的 k 个最强值

给你一个整数数组 arr 和一个整数 k 。

设 m 为数组的中位数,只要满足下述两个前提之一,就可以判定 arr[i] 的值比 arr[j] 的值更强:

 |arr[i] - m| > |arr[j] - m|
 |arr[i] - m| == |arr[j] - m|,且 arr[i] > arr[j]
请返回由数组中最强的 k 个值组成的列表。答案可以以 任意顺序 返回。

中位数 是一个有序整数列表中处于中间位置的值。形式上,如果列表的长度为 n ,那么中位数就是该有序列表(下标从 0 开始)中位于 ((n - 1) / 2) 的元素。

例如 arr = [6, -3, 7, 2, 11],n = 5:数组排序后得到 arr = [-3, 2, 6, 7, 11] ,数组的中间位置为 m = ((5 - 1) / 2) = 2 ,中位数 arr[m] 的值为 6 。
例如 arr = [-7, 22, 17, 3],n = 4:数组排序后得到 arr = [-7, 3, 17, 22] ,数组的中间位置为 m = ((4 - 1) / 2) = 1 ,中位数 arr[m] 的值为 3

示例 1:

输入:arr = [1,2,3,4,5], k = 2
输出:[5,1]
解释:中位数为 3,按从强到弱顺序排序后,数组变为 [5,1,4,2,3]。最强的两个元素是 [5, 1]。[1, 5] 也是正确答案。
注意,尽管 |5 - 3| == |1 - 3| ,但是 5 比 1 更强,因为 5 > 1 。

 七、面试题 16.21. 交换和  【排序 + 双指针】

给定两个整数数组,请交换一对数值(每个数组中取一个数值),使得两个数组所有元素的和相等。

返回一个数组,第一个元素是第一个数组中要交换的元素,第二个元素是第二个数组中要交换的元素。若有多个答案,返回任意一个均可。若无满足条件的数值,返回空数组。

示例:  输入: array1 = [4, 1, 2, 1, 1, 2], array2 = [3, 6, 3, 3]  输出: [1, 3]

 八、1366. 通过投票对团队排名

 

现在有一个特殊的排名系统,依据参赛团队在投票人心中的次序进行排名,每个投票者都需要按从高到低的顺序对参与排名的所有团队进行排位。

排名规则如下:

  参赛团队的排名次序依照其所获「排位第一」的票的多少决定。如果存在多个团队并列的情况,将继续考虑其「排位第二」的票的数量。以此类推,直到不再存在并列的情况。如果在考虑完所有投票情况后仍然出现并列现象,则根据团队字母的字母顺序进行排名。

  给你一个字符串数组 votes 代表全体投票者给出的排位情况,请你根据上述排名规则对所有参赛团队进行排名。请你返回能表示按排名系统 排序后 的所有团队排名的字符串。

示例 :

输入:votes = ["ABC","ACB","ABC","ACB","ACB"]
输出:"ACB"
解释:A 队获得五票「排位第一」,没有其他队获得「排位第一」,所以 A 队排名第一。
B 队获得两票「排位第二」,三票「排位第三」。
C 队获得三票「排位第二」,两票「排位第三」。
由于 C 队「排位第二」的票数较多,所以 C 队排第二,B 队排第三。

九、1451. 重新排列句子中的单词

「句子」是一个用空格分隔单词的字符串。给你一个满足下述格式的句子 text : 句子的首字母大写,text 中的每个单词都用单个空格分隔。

请你重新排列 text 中的单词,使所有单词按其长度的升序排列。如果两个单词的长度相同,则保留其在原句子中的相对顺序。

请同样按上述格式返回新的句子。

示例 :

输入:text = "Leetcode is cool"
输出:"Is cool leetcode"
解释:句子中共有 3 个单词,长度为 8 的 "Leetcode" ,长度为 2 的 "is" 以及长度为 4 的 "cool" 。
输出需要按单词的长度升序排列,新句子中的第一个单词首字母需要大写。

最新文章
用AI生成超逼真美女写真,教你如何轻松制作专属头像!
在这个科技日新月异的时代,AI工具的飞速发展让我们惊叹不已。其中,AI绘画与生成超逼真美女写真不仅吸引了无数年轻人的目光,更成为了许多自媒体创作者的得力助手。想象一下,只需轻轻一扫,立刻便能拥有一张高质量的专属头像,分享给朋友
韩漫漫画登录页面免费漫画入口免费下拉下载
韩漫漫画登录页面免费漫画入口免费下拉能够带给大家丰富的漫画供你阅读!各种精彩好看的漫画都能在这里找到,各种类型的漫画这里应有尽有。简洁的界面设计,能够带给大家非常舒适的阅读观看体验。喜欢韩漫的小伙伴不要错过哦!通过许多有趣
用AI造谣发50万篇引流图文,广州6人落网
南都此前曾调查利用AI造谣乱象。据此前报道,南都记者调查发现,除了ChatGPT等常用人工智能工具,南都记者通过关键词搜索,在网络上发现许多“AI洗稿”“伪原创生成器”“AI写作”等网站、小程序,其功能多样,能满足创作公众号文章、视频
抖音流量池怎么打开 抖音小店代运营
抖音流量池怎么打开?流量池主要参考评论数、转发数、抖音1数、完播率这四个维度的数据,来分析视频是否值得被推荐,想要进入流量池,还得提升这4项指标。1)评论数:A、在视频描述里,设置一些互动问题,引导用户留言评论,提升评论量。比如
Windows优化大师无广告官方版
1. 系统信息:Windows优化大师可以检测系统的硬件和软件信息,例如CPU信息、内存信息等,同时还可以查看更多系统详细信息,包括核心、内存、硬盘、网络、Internet、多媒体和其他设备等。2. 磁盘缓存:提供磁盘最小缓存、磁盘最大缓存以及缓
长安CS35PLUS着力打造智能驾趣新生活 配置超高
全新长安CS35 PLUS作为中庸稳重小型suv,这款新车在设计上无疑是非常霸气的。在外形方面,长安CS35 PLUS整体的设计时尚大气的,整个车头前脸看起来精致,全LED点亮后显得很有精神气。车身侧面的腰线依旧是长安汽车独到的线条设计,妖娆的身
复利商业销售模式怎么运营,从理论到运营的实践指南
在现代商业环境中,复利商业销售模式作为一种具有长效价值增长潜力的经营方式,逐渐受到企业的广泛关注。这种模式的核心在于通过持续积累客户价值,实现销售收入的指数级增长。一、什么是复利商业销售模式?复利商业销售模式的灵感来源于金
破解手游助手
破解手游助手,其实很简单,就是利用一些软件,把游戏安装包里面的文件进行修改。下面就给大家介绍一款可以破解手游助手的工具,它叫【手机助手】。这款APP的功能很多,而且使用起来也很方便。下面我们就来一起了解一下吧。一、下载并安装
考研订酒店有哪些注意事项
在知道自己的考试地点之后,一定要尽早预订酒店!今年的考研时间又是跟圣诞节撞个满怀,酒店肯定会供不应求。越是早点订,选择性越多,价格更优惠,而且还能有时间提前去考察酒店及酒店周边的情况。在订房时,有以下几点要注意:1.安全第一
相关文章
推荐文章
发表评论
0评