- 博客(7)
- 收藏
- 关注
原创 实现 strStr() 函数,长字符串里搜短字符串
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。输入: haystack = "hello", needle = "ll"输出: 2输入: haystack = "aaaaa", needle = "bba"输出: -1来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/implement-strstr著作权归
2021-02-04 13:15:17 326
原创 判断回文数
回文数(来源LeetCode)给你一个整数 x ,如果 x 是一个回文整数,返回 ture ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例1:输入:x = 121输出:true输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。思路:1.所有负数都不是回文数2.对于非负数,先将数字逆序,然后对比3.数字逆序过程中,考虑
2021-02-03 13:34:36 134
转载 C++错误:“const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
https://blog.csdn.net/weixin_44690935/article/details/108502989
2021-01-29 10:32:09 596
原创 给定两个单链表,找出两个链表的公共节点
思路若两个单链表有公共节点,那么这两个单链表从第一个公共节点开始,之后的所有节点均为公共节点。若两个链表一样长,则直接从头向后同步遍历,第一个相同节点开始即为公共部分;若两个链表不一样长,先把两者长度搞一样,再遍历NodeList Search_common(NodeList L1, NodeList L2) { int len1 = Length(L1), len2 = Length(L2); int distance = 0; NodeList longList, shortList;
2021-01-12 16:05:31 1250
原创 求两个数组合并后的中位数
按照顺序排列的两个数组,数组A:[a1,a2,…,an],数组B:[b1,b2,…,bn],求合并后的数组C:[c1,c2,…,c2n]的中位数1、求A、B两数组各自的中位数m1,m2;2、比较m1,m2,:若m1 = m2,合并后中位数仍等于m1;若m1 < m2,舍弃数组A左半部分和数组B右半部分,要求舍弃的元素数目一致若m1 > m2,舍弃数组A右半部分和数组B左半部分,要求舍弃的元素数目一致3、重复步骤2直至A、B两数组都只剩一个元素C++实现:int M_search(
2021-01-11 14:47:09 1649 1
原创 求数组中缺失的最小正整数
思路及C++实现没跑过,多半有bug,法1法2参考https://blog.csdn.net/stpeace/article/details/109544261法3和法2类似但是比较好想,空间复杂度更高//求数组中缺失的最小整数,法1,巧妙标记法,时间复杂度o(n),空间复杂度o(1)int min_search_1(int input[], int n) { for (int i = 0; i < n; i++) { if (input[i] <= 0) //将所有非正数转化为
2021-01-11 14:37:07 364
原创 冒泡算法
比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,执行完毕后,最小的元素被放在最后一个。重复以上的步骤,每次比较次数-1,直到不需要比较int main() { int arr[9] = { 0,2,8,4,5,1,3,9,7 }; //用到arr[j+1],j的取值最多到7 for (int i = 0; i < 9 - 1; i++) { for (int j = 0; j < 9 -1 - i; j++) { if (arr[j.
2020-12-21 16:28:51 81
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人