- 博客(193)
- 收藏
- 关注
原创 数据结构与算法_排序_快速排序
选择一个基准元素,将小于基准元素的放在基准元素的左边,将大于基准元素的放在基准元素的右边,此时基准元素的位置确定,将基准元素的两边元素进行重复操作,直至所有元素排序完成。
2024-07-24 23:14:54
109
原创 华为机试HJ60查找组成一个偶数最接近的两个素数
构建一个判断是否为素数的函数,再构建一个函数输出构成输入数值相差最小的两个素数。为了保证两个素数相差最小,从输入数值的二分之一处开始判断,遍历得到的两个素数是相差最小的素数。
2024-07-21 09:55:07
183
原创 华为机试HJ102字符统计
需要统计字符串中每个字符出现的次数,并将其按照次数从大到小排序,如果数量相同的字符要按照ASCII码从小到大排序。先遍历整个字符串统计每个字符的数量,再使用冒泡排序对字符数量和ASCII码进行排序并输出。因为构建了统计字符串数量的字典和字典键值的列表,因此空间复杂度为。因为遍历字符串的时间复杂度。,冒泡排序的时间复杂度是。,因此总时间复杂度是。
2024-07-20 10:18:17
395
原创 华为机试HJ97记负均正
遍历输入的列表,记录所有负数的个数,记录所有正数的个数,并累加所有正数,最终获得所有负数的个数和正数的平均值。因为使用了几个额外的记录,因此空间复杂度为。因为遍历了整个列表,因此时间复杂度为。
2024-07-19 13:25:58
213
原创 华为机试HJ81字符串字符匹配
将长字符串构建为字典,遍历短字符串,查找短字符串中的字符是否在字典中。时间复杂度分析:因为构建字典的时间复杂度是。,遍历短字符串的时间复杂度是。空间复杂度分析:构建字典需要。,字典查询的时间复杂度是。
2024-07-18 11:55:15
262
原创 华为机试HJ94记票统计
构建一个候选人字典,统计所有候选人的票数,利用总票数和所有候选人的票数差得到无效票数,并输出结果。因为构建字典的时间复杂度是。,字典检索的时间复杂度是。,遍历字典的时间复杂度是。
2024-07-15 09:43:58
384
原创 LeetCode刷题笔记第3011题:判断一个数组是否可以变为有序
使用冒泡排序进行排序,在判断大小条件时加入判断二进制下数位为1的数目是否相同,相同则可以进行互换。最后遍历数组,相邻两两之间是否具有升序关系,是则返回true,否则返回false。因为没有使用额外的空间,因此空间复杂度为。,判断是否升序的时间复杂度是。,因此上述代码的时间复杂度为。因为冒泡排序的时间复杂度是。
2024-07-13 10:44:21
405
原创 LeetCode刷题笔记第2974题:最小数字游戏
按照题目所述,如果是一个升序的数组,想要得到题目所需结果,将每两位数字位置互换即可。所以先使用快速排序将无序数组变为升序数组。遍历数组,将每两位位置互换。时间复杂度是:O(nlogn)。(快速排序的时间复杂度是O(nlogn),遍历是O(n))空间复杂度是:O(1)。(没有使用额外的空间)
2024-07-12 12:22:52
178
原创 华为机试HJ108求最小公倍数
要找到输入的两个数的最小公倍数,这个最小公倍数要大于等于其中最大的那个数值,遍历最大的那个数值的倍数,最大的最小公倍数就是输入的两个数值的乘积。
2024-07-09 22:26:11
245
原创 华为机试HJ51输出单向链表中倒数第k个结点
因为要用链表,且要找到倒数第k个结点,针对输入序列倒叙进行构建链表并找到对应的元素输出。注意因为有多个输入,要能接受多次调用。上述代码中先构建链表结点类,使用while循环使得代码可以接受多个输入。
2024-07-07 21:53:23
216
原创 华为机试HJ35蛇形矩阵
从题目中得到规律,第一行是每个位置上的等差数列的和(第一个位置是1,第二个位置是1+2,第三个位置是1+2+3,以此类推)。第二行是第一行从第二个位置每个元素减一,依次类推。
2024-07-07 00:34:13
209
原创 华为机试HJ31单词倒排
对字符串中的所有单词进行倒排。说明:1、构成单词的字符只有26个大写或小写英文字母;2、非构成单词的字符均视为单词间隔符;3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;4、每个单词最长20个字母;
2024-07-06 18:47:40
137
原创 华为机试HJ23删除字符串中出现次数最少的字符
实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数最少的字符都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
2024-07-06 16:44:29
221
原创 华为机试HJ22汽水瓶
某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。
2024-07-06 14:49:04
230
原创 华为机试HJ21简单密码
现在有一种密码变换算法。九键手机键盘上的数字与字母的对应: 1–1, abc–2, def–3, ghi–4, jkl–5, mno–6, pqrs–7, tuv–8 wxyz–9, 0–0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9.而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a。数字和其它的符号都不做变换。数据范围: 输入的字符串长度满足 1≤n≤100。
2024-07-06 09:25:29
167
原创 华为机试HJ15求int型正整数在内存中存储时1的个数
输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。数据范围:保证在 32 位整型数字范围内。
2024-07-05 11:45:49
229
原创 华为机试HJ13句子逆序
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符。
2024-07-04 22:52:22
199
原创 华为机试HJ11数字颠倒
输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001。
2024-07-04 17:11:19
373
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人