
算法数据结构
EricBBB
游戏客户端开发工程师,熟悉C++,C#,cocos2d-x,lua, Unity3D
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 单向链表倒置 reverse
struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; 现在才知道大学学的基础知识这两年都没怎么用,都快忘完了,今天刷leetcode发现单向链表reverse都快写不出来了hhhh。 1) 递归方法: class Solution { public...原创 2018-12-29 18:12:29 · 1269 阅读 · 0 评论 -
MD5加密算法原理以及C++实现
MD5消息摘要算法,属Hash算法一类。 主要运用于数据加密,一致性,信息摘要以及校验用。 比如最常用的支付宝,会将多个参数连起来加上一段key,进行MD5,连同参数一起发送给服务端,服务端根据参数进行同样操作,如果MD5码相同即为正确。 当然支付宝肯定不是这样使用的,这里只是举个例子! 算法原理 以下所描述的消息长度、填充数据都以位(Bit)为单位,字节序为小端字节。 1、数据填充 ...原创 2019-01-03 11:11:53 · 1180 阅读 · 0 评论 -
单向链表的插入排序和归并排序
插入排序: O(n^2) class Solution { public: ListNode* insertionSortList(ListNode* head) { ListNode *dummy = new ListNode(-1), *cur = dummy; while (head) { ListNode* tmp = h...原创 2019-05-19 19:14:14 · 333 阅读 · 0 评论 -
十六进制某一位取反
如何对一个十六进制数的某一位取反,用C语言写,比如0x2F,我想对第六位取反 0x2F ^ (1 << (6-1)) 结果是15 第n位取反同(1 << (n -1)) 异或。原创 2019-05-17 16:35:54 · 3985 阅读 · 1 评论 -
部分有环单向链表判断环起点问题
# 方法一 (hash) ListNode *detectCycle(ListNode *head) { unordered_set<ListNode*> map; int index = 0; while (head) { if (map.count(head)) return head; else map.insert(map.begin(), ...原创 2019-05-15 16:35:33 · 441 阅读 · 0 评论 -
二叉树遍历(先序、中序、后序)
先序递归: void preorderTraversalDFS(TreeNode* root, vector<int>& result) { if (root) result.push_back(root->val); else return; if (root->left) preorderTraversalDFS(root-&g...原创 2019-05-17 15:57:22 · 267 阅读 · 0 评论 -
有向图判断是否有环
#LeetCode 1.DFS 需要建立有向图,用二维数组来建立,我们需要一个一维数组 visit 来记录访问状态,这里有三种状态,0表示还未访问过,1表示已经访问了,-1 表示有冲突。大体思路是,先建立好有向图,然后从第一个门课开始,找其可构成哪门课,暂时将当前课程标记为已访问,然后对新得到的课程调用 DFS 递归,直到出现新的课程已经访问过了,则返回 false,没有冲突的话返回 t...原创 2019-06-13 13:11:00 · 769 阅读 · 0 评论