
算法/数据结构
文章平均质量分 56
等风来不如迎风去
AI领域初学者,AI+实时语音,AI+2/3D动画生成;AI+UE表演,AI+游戏NPC;音视频行业深耕多年,熟悉会议、直播、RTC,对在线教育、娱乐秀场等音视频端到端技术及系统架构有深入研究
展开
-
【C++】剑指 Offer 22. 链表中倒数第k个节点 (-)
地址一次性通过但可以看到内存肯定耗费比较多,因为我额外搞个一个vector 存指针。我的代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNod..原创 2022-05-18 10:33:10 · 249 阅读 · 0 评论 -
【C++】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 (-)
加了保护还报错难道是因为输入了 空的,导致异常?加了[] 判断【1,3,5】 过不了就加上这个break 就都ok了。这是因为 在后面j 位置,拿到了一个奇数,这个时候需要在j之前,遍历到一个偶数,位置i,二者对调。当j 发现遍历过来的i 跟自己一样了,就如同[1,3,5],i和j都是2了,说明了啥,说明j 前面都是奇数,没有偶数啊。这个时候就直接break掉内层的while ,然后break掉外层的while,退出执行。如果不加找不到就break掉外层的这个逻辑,会有.原创 2022-05-18 00:46:00 · 234 阅读 · 0 评论 -
【C++】剑指 Offer 18. 删除链表的节点
1 应该难点在待删除的结点的前一个结点如何保存?通过独立的变量prev保存2 头尾结点要注意刚好是头结点单独搞了一个判断3 结束条件:while p ,p 是当前那个我出错的地方: p->next 为空,说明是最后一个,我break了那么当前结点就得不到判断了。竟然么有删掉?找到问题了保存prev的时候,用了已经后移的p赋值应该先保存prev,然后,移动p但还有错误:如果待删除是最后一个,删不掉:原来是之前思路不清晰的时候,加的最后一个结点的判断..原创 2022-05-17 22:49:38 · 284 阅读 · 0 评论 -
【C++】剑指 Offer 17. 打印从1到最大的n位数
剑指 Offer 17. 打印从1到最大的n位数原创 2022-05-16 01:07:06 · 963 阅读 · 0 评论 -
【c++】剑指 Offer 11. 旋转数组的最小数字 二分查找(待续)
我的解法比较low大神们分析的头头是道,直接二分法查找这种旋转数组是分为两部分的只需要去掉尾部含有的连续的相同的元素就可以适用二分查找法查找的是个啥呢?应该是中间那个最小值的位置随想大神分析的依旧很到位0189.旋转数组.md给出了跟我类似的low解法和二分法知乎掘金林小鹿 大神的图神了剑指 Offer 11. 旋转数组的最小数字为了便于分析,我们先将数组中的数画在二维坐标系中,横坐标表示数组下标,纵坐标表示数组数值,我们发现除了最后水平的一段(黄..原创 2022-05-15 23:46:30 · 239 阅读 · 0 评论 -
【C++】剑指 Offer 11. 旋转数组的最小数字
我的这种解法是不登大雅之谈堂的。数据量大,那么效率就低。而且还要处理 一个元素这种特例。文内详述。知乎上有位大神也是跟我一样的思路方程式实验中学他解释的比我好:既然是旋转的,那么数组的是数值规则应该是:递增+最小值+递增,最大值和最小值紧挨着,所以只要看哪里不是递增的就知道最小值在哪。代码如下:public class MinArray { public static int minArray(int[] numbers) { //min默认初始值就是第一个..原创 2022-05-15 23:38:29 · 190 阅读 · 0 评论 -
【C++】剑指 Offer 10- II. 青蛙跳台阶问题
0070.爬楼梯.md这位大神解释的思路,已经很到位了。大神,这就是斐波那契数列如图, 大神自己推导的思路是n 楼梯的方法数目是由n-1 和n -2 楼梯方法数目之和。自己列举了一下,果然是这样的规律:大神对于dp[0] 说不考虑,但是我看不考虑会报错:dp【0】=1class Solution {public: int numWays(int n) { int dp[101]; dp[0] = 1; dp[1..原创 2022-05-14 23:58:37 · 231 阅读 · 0 评论 -
【C++】剑指 Offer 10- I. 斐波那契数列
剑指Offer10-I.斐波那契数列 大神的讲解:取余Tips : 设正整数x, y, z ,有取余公式:(x + y) % z = (x % z + y % z) % z按照题意递归写,直接超出时间限制求f(n)就是分别求f(n-1)和f(n-2),然后递归执行下去class Solution {public: int fib(int n) { if(n == 0) { return 0; ..原创 2022-05-14 17:16:38 · 271 阅读 · 0 评论 -
【C++】剑指 Offer 06. 从尾到头打印链表
由于前面两个题目是stack的所以感觉找到帮手了,结果还是出错了。基础不牢啊。出错了感觉这个是最简单的吧,结果还是出错了链表的第一个元素竟然么有出来又错了,header->next 可能是空指针的又错了,这下少了最后一个输入的终于该对了,代码比之前都简单直接用指针p挨个指向单链表的每个结点p 就拿到 next 的值就可以逐个向下p 为null ,就是列表遍历结束了,此时p是租后一个结点的next域了。/** * Definition..原创 2022-05-14 14:13:57 · 261 阅读 · 0 评论 -
【C++】剑指 Offer 05. 替换空格
剑指 Offer 05. 替换空格大神分析在网络编程中,如果URL参数中含有特殊字符,如空格、'#‘等,可能导致服务器端无法获得正确的参数值。我们需要将这些特殊符号转换成服务器可以识别的字符。转换的规则是在’%‘后面跟上ASCII码的两位十六进制的表示。比如空格的ASCII码是32,即十六进制的0x20,因此空格被替换成"%20"。再比如’#'的ASCII码为35,即十六进制的0x23,它在URL中被替换为"%23"。请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入原创 2022-05-14 13:49:11 · 254 阅读 · 0 评论 -
【C++】剑指 Offer 03. 数组中重复的数字
剑指 Offer 03. 数组中重复的数字https://leetcode.cn/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/solution/mian-shi-ti-03-shu-zu-zhong-zhong-fu-de-shu-zi-b-4/官方的HashSet 是java的看起来跟我的思路是一样的,只是我用map代替了hashsetstd map 的遍历方法内存耗费较大,耗时比较多这里一定要返回int所以搞了一原创 2022-05-14 09:20:14 · 190 阅读 · 0 评论 -
【C++】剑指 Offer 30. 包含min函数的栈
剑指 Offer 30. 包含min函数的栈题目不是说没有元素,top就返回false而是top一定要返回一个int值这个时候,vector 在没有元素的时候,不知道返回个啥换用stack,看了下stack的操作,都是 o1的,stack 直接top 返回,好像也会报错:9/19 无法通过最后一个值是min,并不是top 出错看了下大神的写法,关键是是用std min 来返回std min 比直接 比较,有什么不可告人的高等智慧? int原创 2022-05-14 08:36:47 · 217 阅读 · 0 评论 -
【C++】剑指offer:两个栈实现队列
剑指offer2 地址队列是尾部进入,头部做删除,对应了题目的俩funcabc 入,队头就是a,栈是先入后出,cba入,那么栈顶就是a所以要删除队头a,a 如果先入栈1,那么再栈底,没有办法删掉。那么,把栈1数据转移到栈2, 最先压入栈1的a,出栈1,放入栈2,之后,就变为栈2的顶了。所以出栈就是从栈1 转移到栈2后,出栈。如果栈2,没有,并且栈1 也没有这时候返回-1如果栈2 没有,栈1有,那么从栈1做转移。这个时候,栈1要全部转移到栈2, 才能找到自己的队列头的第一个元素,出现再..原创 2022-05-14 01:16:28 · 197 阅读 · 0 评论 -
【算法】【sort 2.2.1】归并排序
分治法代表递归sort + mergelabuladong排序过程[Running] g++ test_sort_guibing_2.2..1.cpp -std=c++14 -o test_sort_guibing_2.2..1.exe && ./test_sort_guibing_2.2..1.exe 81 72 67 89 80 65 77 83 82 68 70 88--resize--12--b--sort;lo 0 hi 11sort;lo 0 hi..原创 2020-06-28 22:47:14 · 380 阅读 · 0 评论 -
【算法】【sort 2.1.3】希尔排序
shell sort是一种优化的 插入排序基于插入排序,每个不断缩小的区间得到后,都要做插入排序效率不稳定,但是一般比 插入排序好插入排序主要是做相邻的交换这东东有三层for执行过程:[Running] g++ test_sort_xier_2.3.cpp -std=c++14 -o test_sort_xier_2.3.exe && ./test_sort_xier_2.3.exe 100 99 8 7 200 3 1 4337 max h 7 43 99原创 2020-06-28 13:10:29 · 898 阅读 · 0 评论 -
EECS 489实验3:带Bloom过滤器的ImageDB
EECS 489实验3:带Bloom过滤器的ImageDBlab3服务器(imgdb)最终将成为我们的分布式哈希表(DHT)节点,但是在本实验中,我们假设只有一个这样的节点。中文介绍就完成本练习所需编写的行数而言,它很短。您只需要编写约10行代码。任务1有两行,任务2有8行。所需的时间长短取决于您对模块化算术和按位运算的满意程度。我们假定在本实验中设置客户端-服务器。服务器(...原创 2020-02-02 17:24:01 · 626 阅读 · 0 评论 -
第一章
INSERT_SORT(A)1. for j2. do key3. #把A[j]插入到前面已经排好序的序列A[1...j-1]里面去4. i5. while i>0 and A[i]>key6. do A[i+1]7. i8. A[i+1]原创 2010-01-26 12:06:00 · 960 阅读 · 0 评论 -
chapter 2 : The Complexity of Algorithms and the Lower Bounds of Problems
Definition (complexity)。The space complexity of an algorithm is the amount of memory it needs to run to completion. 。The time complexity of an algorithm is the amount of computer time it needs原创 2009-11-16 17:53:00 · 1369 阅读 · 0 评论