算法
算法实战演练
花洛兮灬
技术宅改变世界
展开
-
C++:电话号码的字符组合
C++:电话号码的字符组合题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:输入:digits = ""输出:[]示例 3:输入:digits = "2"输出:["a","b","c"]分析本题可以考虑原创 2021-07-23 16:35:35 · 778 阅读 · 3 评论 -
C++:主要元素
C++:主要元素问题描述数组中占比超过一半的元素称之为主要元素。给你一个 整数 数组,找出其中的主要元素。若没有,返回 -1 。请设计时间复杂度为 O(N) 、空间复杂度为 O(1) 的解决方案。 示例 1:输入:[1,2,5,9,5,9,5,5,5]输出:5示例 2:输入:[3,2]输出:-1示例 3:输入:[2,2,1,1,1,2,2]输出:2分析最容易想到的一个方法是使用Hash表进行计数,依次遍历并判断当前数出现的次数是否大于长度的一半,该方法时间复杂度为O原创 2021-07-09 16:58:15 · 570 阅读 · 0 评论 -
C++:寻找两个正序数组的中位数
C++:寻找两个正序数组的中位数问题描述给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5示例 3:原创 2021-07-09 15:33:35 · 510 阅读 · 0 评论 -
C++:从控制台读取各种类型数据
C++:从控制台读取各种类型数据最近在刷题,各种乱七八糟的数据读入方式如果没有提前准备,做题的时候还是挺耽误时间的,因此决定在这里总结见过的各种格式,并持续更新1. 读取不确定长度的数据该类型的数据读入算是比较多了,一般以while循环进行处理,通过换行符进行终止#include <iostream>#include <string>#include <vector>using namespace std;int main(){ int temp原创 2021-06-17 23:25:58 · 1270 阅读 · 0 评论 -
C++:前K个高频单词
题目描述给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: ["i", "love", "leetcode", "i", "love", "coding"], k = 2输出: ["i", "love"]解析: "i" 和 "love" 为出现次数最多的两个单词,均为2次。 注意,按字母顺序 "i" 在 "love" 之前。 示例 2:输入: ["the", "day"原创 2021-05-21 21:50:30 · 514 阅读 · 0 评论 -
C++:小美的送花路线
问题描述小美是美团的一名鲜花快递员,鲜花是一种保质期非常短的商品,所以需要尽快送到客户手中,公司对于骑手的一个要求就是要规划送花的线路,使得骑手送完所有订单走的路程尽可能少。(骑手开始派送时带走了所有需要派送的花,不必每单后返回花店,路程结算是从花店出发,到送完最后一名客户为止,不计算从最后一名客户家回到花店的时间)公司对于骑手的绩效评价是取决于两个指标,一是从花店到所有客户地址的距离之和,另一个是骑手实际走的路程。设花店始终位于1号位置,客户共有n-1个,其编号为2~n。令dis(i,j)表示i号位原创 2021-05-20 20:56:27 · 936 阅读 · 8 评论 -
C++:移除数组中的指定元素
C++:移除元素问题描述给你一个数组nums和一个值val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参作任原创 2021-04-26 11:09:21 · 16095 阅读 · 0 评论 -
C++:快速排序实例
快速排序:C++实例简介快速排序被认为是用于排序的最佳实用选择,主要原因是其平均运行性能较好:最坏情况下运行时间为θ(n2)\theta(n^2)θ(n2),期望的运行时间θ(nlgn)\theta(nlgn)θ(nlgn),且隐含的常数因子很小。除此之外他还能够进行就地排序,占用内存空间极少。原理与合并排序一样,快速排序也是一种分治模式算法。其一种实现原理如下:在每一个迭代的开始,选定最后一个元素为主元(pivot element)记为keykeykey,循环变量i,ji,ji,j分别初始化为原创 2021-03-30 17:52:39 · 221 阅读 · 0 评论 -
C :循环队列实例
**C语言队列入门程序举例** 程序功能 创建一个7个数据的循环队列,创建完成后立即返回排头和队尾元素指针,并返回队中元素,然后将倒数三个元素退队,退队后返回退队元素是什么,然后再返回队中元素和现在的排头和队尾指针。源代码main.h#include <stdio.h>#include <math.h>#include...原创 2017-07-10 11:23:46 · 1614 阅读 · 1 评论 -
算法导论-1.2
算法导论-1.21.2-1电机调速算法,PID算法,优良的算法能够更加有效的调节最终转速。通信中的报文控制算法,能够有有效防止丢包并报告错误。.1.2-21.2-3...原创 2020-03-28 13:12:26 · 225 阅读 · 0 评论 -
算法导论-1.1
算法导论-1.11.1-1(1) 按照学号对全班同学进行排序。(2) 在一张图片中用指定物体上的像素点圈出指定物体使围成的面积最小。1.1-2内存资源占用1.1-3队列:优点,确定的出入规则,能很好的处理相同权限的终端向服务器请求数据的顺序问题。缺点,对于更高优先级的请求如果会出现滞后问题。对中间数据的存取很困难。1.1-4相同点:是最短路径问题不同点:最短路径只需要从起点到...原创 2020-03-28 11:35:41 · 151 阅读 · 0 评论