
算法
文章平均质量分 65
苦逼工科男
软件开发工程师
展开
-
两个栈模拟实现队列
两个栈模拟实现队列原创 2022-09-13 19:31:04 · 1872 阅读 · 0 评论 -
Google中国编程挑战赛入围赛真题HardDuplicateRemover(1000分)
#include <iostream>#include <vector>#include <map>using namespace std;class HardDuplicateRemover{public: vector<int> process(vector<int>& elements);};vector<int> HardDuplicateRemover::process(vector<.原创 2022-04-17 23:50:30 · 494 阅读 · 0 评论 -
零矩阵,若M × N矩阵中某个元素为0,则将其所在的行与列清零
零矩阵编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。示例 1:输入:[ [1,1,1], [1,0,1], [1,1,1]]输出:[ [1,0,1], [0,0,0], [1,0,1]]示例 2:输入:[ [0,1,2,0], [3,4,5,2], [1,3,1,5]]输出:[ [0,0,0,0], [0,4,5,0], [0,3,1,0]]相关标签 数组 哈希表 矩阵我...原创 2022-01-17 00:07:24 · 1235 阅读 · 0 评论 -
旋转矩阵90 度
旋转矩阵给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例 1:给定 matrix =[ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix =[ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3,...原创 2022-01-16 22:30:31 · 3927 阅读 · 0 评论 -
合并区间 - 数组
合并区间以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例2:输入:intervals =...原创 2021-12-12 13:07:46 · 705 阅读 · 52 评论 -
搜索插入位置 - 二分法
搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4:输入: nums = [1.原创 2021-12-10 00:07:09 · 1089 阅读 · 1 评论 -
724. 寻找数组的中心下标
给你一个整数数组nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出:3解释:中心下标是 3 。左侧数之和 sum = n.原创 2021-12-07 00:28:36 · 127 阅读 · 1 评论 -
链表--结点
原创 2015-09-04 15:50:34 · 607 阅读 · 0 评论 -
在给定字符串中找出单词并排序
2 字符串处理转换 问题描述: 在给定字符串中找出单词( “单词”由大写字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格、问号、数字等等;另外单个字母不算单词);找到单词后,按照长度进行降序排序,(排序时如果长度相同,则按出现的顺序进行排列),然后输出到一个新的字符串中;如果某个单词重复出现多次,则只输出一次;如果整个输入的字符串中没有找到单词,请输出空串。输出原创 2015-08-22 23:31:42 · 1690 阅读 · 0 评论 -
2016华为校招机试题(软件开发)
今天华为的机试题明显变难了,而且和往年的不一样了,准备了前些年的题目,但是今年的做起来很不习惯。机试时可以上网,但是搜不到原题。这个是考试规则初级题目:原创 2015-09-21 10:47:37 · 10388 阅读 · 1 评论 -
左神算法学习总结
总结中.......左神直通BAT算法笔记(基础篇) (有这一篇就够了)https://www.nowcoder.com/discuss/150060?type=0&order=0&pos=6&page=1算法初级02——荷兰国旗问题、随机快速排序、堆排序、桶排序、相邻两数的最大差值问题、工程中的综合排序算法http://www.likec...原创 2019-05-12 16:41:57 · 13433 阅读 · 2 评论 -
输出一个字符串的全排列
代码:# using python3 不考虑有重复的def permutation(str, begin, length): if begin == (length - 1): # print("print: begin:%d length:%d" % (begin,length)) print(str) #输出一个字符串的全排列...原创 2019-06-04 22:55:57 · 1085 阅读 · 0 评论 -
F(n) = F(n-1) + F(n-3)
数学归纳法:F(1) = 1, F(2) = 2,F(3) = 3F(n) = F(n-1) + F(n-3)def permutation(n): if n >= 1 and n <= 3: return n return permutation(n-1) + permutation(n-3)if __name__ =...原创 2019-06-11 15:01:21 · 1393 阅读 · 0 评论 -
很详尽KMP算法
很详尽KMP算法(厉害)作者:July时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。后收录于新书《编程之法:面试和算法心得》第4.4节中。正文:https://www.cnblogs.com/ZuoAndFutureGirl/p/9028287.html尝试用C生成help / next 数组:...转载 2019-08-11 11:51:09 · 514 阅读 · 0 评论 -
输入是一个只包含拼音的字符串,请输出对应的数字序列。
输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:描述: 拼音 yi er san si wu liu qi ba jiu 阿拉伯数字 1 2 3 4 5 6 7 8 9输入字符只包含小写字母,所有字符都可以正好匹配运行时间限制:无限制内存限制:原创 2015-08-08 10:57:31 · 2648 阅读 · 0 评论 -
姓名的“夫妻相”
题目:夫妻相在中国,形容夫妻恩爱的词汇中,大家用的比较多的就是“夫妻相”。所谓“夫妻相”,就是两个人看上去比较般配,长相、身材等某些方面有一定的相似度。本题则另辟蹊径,从人的姓名维度,以字母重复个数来寻找最具“夫妻相”的人。题目中预先给定一组女士的姓名拼音。输入男士的姓名拼音(拼音中间可以有空格,字母全部小写),依预先给定姓名拼音的先后遍历所有姓名,输出字母重复数最多的女士姓名。原创 2015-08-05 21:31:21 · 2068 阅读 · 0 评论 -
分解字符串
(两个字符串是不是一起输入一个又接着输另外一个,这个地方有点小困惑?) 同时输入,我觉得用指针数组比较好;分开输入就无所谓了。按要求分解字符串,输入两个数M,N,M代表输入的M个待处理的字符串,N代表输出的每串字符串要处理成的位数,不够补0。例如:输入:2 8 abc 123456789输出:abc00000原创 2015-08-06 11:30:01 · 653 阅读 · 0 评论 -
输入一组大于等于0的整数,根据从大到小的顺序排序后输出;如果排序后有连续数时,只输出连续输的最大和最小数。
输入一组大于等于0的整数,根据从大到小的顺序 排序后输出;如果排序后有连续数时,只输出连续输的最大 和最小数。输入的所有整数都各不相同,即不用考虑两个整 数相同的情况。 如:输入4,7,2,1,5,8,9,11 输出11,9,7,5,4,2,1 第2个功能的实现:#includeusing namespace std;原创 2015-08-08 16:32:55 · 4235 阅读 · 1 评论 -
将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如:
问题描述: 将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如:aa 转换为 bc,zz 转换为 ab;当连续相同字母超过两个时,第三个出现的字母按第一次出现算。 要求实现函数: void convert(char原创 2015-08-18 19:24:11 · 4489 阅读 · 0 评论 -
编写一个函数,删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。
//编写一个函数,删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。//输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。 //格式说明: 字符串只包含字母,不可能为空串,不包含空格// 如输入字符串为“abcdd”,输出为"dd"//算法思路://(1)定义一个长度为26的整型数组,每个字母出现的次数存在这个数组中。//(2)求出数组中的最原创 2015-08-11 22:41:01 · 4651 阅读 · 1 评论 -
计算字符串最后一个单词的长度,单词以空格隔开。
描述计算字符串最后一个单词的长度,单词以空格隔开。知识点字符串,循环运行时间限制0M内存限制0输入一行字符串,长度小于128。输出整数N,最后一个单词的长度。样例输入hello world样例输出原创 2015-08-27 23:59:57 · 8041 阅读 · 4 评论 -
Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。
描述Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。 知识点字符串运行时间限制0M内存限制0输入Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字原创 2015-08-27 23:57:14 · 4040 阅读 · 0 评论 -
求一个字符串中【连续】出现次数最多的子串
注意:1个字符当然也算字符串看这个应该看得懂了吧,我上面的写得催促 有错 不好意思啊!一,考虑边界问题。二,实现优化笛卡尔积组合,总体我是这样想的:就是纵向切出字符串的连续组合集合,在横向一对一跳跃比较集合元素。例如:abcbcabc 一,纵向切:得到所有字符串组合,注意:这里要求的是最多连续子字符串,其实就是优化笛卡尔积的原则,也是边界。 字符串共8原创 2015-08-02 22:39:08 · 941 阅读 · 0 评论 -
输入两个非负整数,然后每个数字颠倒顺序,如123颠倒之后就是321,反向求和输出。
输入两个非负整数,然后每个数字颠倒顺序,如123颠倒之后就是321,反向求和输出。#includeusing namespace std;int inverse(int q){ int result=0,k; while(q) { k=q%10; q=q/10; result=result*10+k; } return result;}in原创 2015-08-04 22:24:30 · 1790 阅读 · 0 评论 -
输入一个字符串,如果第一个字符是大写并且其他字符不是大写,那么输出true,否则输出false。
输入一个字符串,如果第一个字符是大写并且其他字符不是大写,那么输出true,否则输出false。#include #include using namespace std; int main(){ char str[126]; int i=0; int flag=0; cout<<"please input the str"<<endl; gets(s原创 2015-08-04 22:31:57 · 1210 阅读 · 0 评论 -
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函数: void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);原创 2015-08-17 13:47:01 · 3999 阅读 · 0 评论 -
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc". 2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"原创 2015-08-17 14:49:53 · 6000 阅读 · 1 评论 -
通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。 输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。 补充说明: 1. 操作数为正整数,不需要考虑计算结果溢出的情况。 2. 若输入算式格式错误,输出结果为“0”。 要求实现函数: void a原创 2015-08-17 20:30:22 · 3839 阅读 · 0 评论 -
矩阵运算
原创 2015-09-03 18:10:13 · 456 阅读 · 0 评论 -
起泡算法的最佳复杂度O(N)
//起泡法,大数沉底#include #include #include int main(){ char a[1000]; gets(a); int k=strlen(a); for(int i=0;i<k-1;i++)//趟 { for(int j=0;j<k-1-i;j++)//比较次数:k-i { if(a[j]>a[j+1]) { c原创 2015-09-03 18:56:44 · 913 阅读 · 0 评论 -
去除重复字符并排序
去除重复字符并排序运行时间限制:无限制内容限制: 无限制输入: 字符串输出: 去除重复字符并排序的字符串样例输入: aabcdefff样例输出: abcdef没看到结果里面要求排序,所以大意了写成了这样:#includeusing namespace std;in原创 2015-08-08 13:35:58 · 1875 阅读 · 1 评论