随笔分类 -  数据结构

摘要:A星算法笔记 参考:https://blog.csdn.net/hitwhylz/article/details/23089415 [update]我新增了一篇文章,讲述了如何用A星算法实现一个自动吃食物的贪吃蛇小游戏 https://www.cnblogs.com/studentWangqy/p/ 阅读全文
posted @ 2024-03-07 21:30 lucky_doog 阅读(46) 评论(0) 推荐(0) 编辑
摘要:引入 我现在有一份黑名单数据,里面有10000条域名,现在需要编写一个算法,快速判断一个域名在不在这个黑名单里,怎么设计这个算法? 字典树 or 前缀树 前缀树是N叉树的一种 根节点表示空字符串 重要操作是insert和search 参考 https://blog.csdn.net/qq_41967 阅读全文
posted @ 2023-02-15 21:49 lucky_doog 阅读(63) 评论(0) 推荐(0) 编辑
摘要:单链表的两种写法 视频链接 https://www.youtube.com/watch?v=o8NPllzkFhE 第一种写法(not good tast) #include <stdio.h> struct node { int data; struct node* next; } struct 阅读全文
posted @ 2022-08-01 22:48 lucky_doog 阅读(44) 评论(0) 推荐(0) 编辑
摘要:前言 这题是大四时,学弟学妹们问我的题目,哈夫曼压缩,也是我当年没有做好的题目,现在是来还债的。 哈夫曼压缩 哈夫曼压缩的本质是“非定长编码”,区别于 ASCII 码这样的定长编码 英文里哈夫曼编码也叫做 lossless data compression algorithm,即最小损失压缩算法 哈 阅读全文
posted @ 2022-06-21 00:41 lucky_doog 阅读(611) 评论(3) 推荐(0) 编辑
摘要:两个数组的交集2 350. 两个数组的交集 II - 力扣(LeetCode) (leetcode-cn.com) 思路 用 c++ STL 来做 I want to perform a multi-set intersection using C++ - Stack Overflow 使用 set 阅读全文
posted @ 2021-11-09 16:23 lucky_doog 阅读(26) 评论(0) 推荐(0) 编辑
摘要:大数乘除法 大数乘法 代码 /* 大整数乘法 https://blog.csdn.net/u010983881/article/details/77503519 拟乘法累加 - 改进 思路来源段落链接: https://blog.csdn.net/u010983881/article/details 阅读全文
posted @ 2021-11-08 23:56 lucky_doog 阅读(367) 评论(0) 推荐(0) 编辑
摘要:计算机能力挑战赛 (24条消息) 2019年全国高校计算机能力挑战赛C++组初赛_Csdn诗人的博客-CSDN博客 2019年全国高校计算机能力挑战赛初赛C语言解答 - dgw博客 - 博客园 (cnblogs.com) 2019年全国高校计算机能力挑战赛 C语言程序设计决赛 - 代码天地 (cod 阅读全文
posted @ 2021-11-07 23:29 lucky_doog 阅读(316) 评论(0) 推荐(0) 编辑
摘要:国王游戏 算法原理的数学证明 国王の游戏 - 帅到报警 的博客 - 洛谷博客 (luogu.com.cn) 结构体 typedef struct { int left; int right; int mul; }element, * p_element; 排序 C/C++中关于qsort的使用 - 阅读全文
posted @ 2021-11-07 23:29 lucky_doog 阅读(96) 评论(0) 推荐(0) 编辑
摘要:两数之和 1. 两数之和 - 力扣(LeetCode) (leetcode-cn.com) 相关C++数据结构 unordered_map C++ STL unordered_map容器用法详解 (biancheng.net) insert() 向容器中添加新键值对。 find(key) 查找以 k 阅读全文
posted @ 2021-11-07 23:28 lucky_doog 阅读(61) 评论(0) 推荐(0) 编辑
摘要:最大连续子数组 53. 最大子序和 - 力扣(LeetCode) (leetcode-cn.com) 我的做法,用前缀和 class Solution { public: int maxSubArray(vector<int>& nums) { int * presum = new int[nums 阅读全文
posted @ 2021-11-07 23:26 lucky_doog 阅读(22) 评论(0) 推荐(0) 编辑
摘要:十个经典排序算法 快排 /* 快速排序 */ #include <iostream> #include <cstdlib> #define N 6 using namespace std; void quick_sort(int arr[], int begin, int end); void pr 阅读全文
posted @ 2021-11-01 00:02 lucky_doog 阅读(55) 评论(0) 推荐(0) 编辑
摘要:动手实现hashmap 引入问题 为什么需要hashmap? 我已经知道的数据结构: 数组 链表 数组的优点: 有数组下标,按下标查找快, 由于存储空间连续,插入删除慢 扩容不方便,容易造成空间浪费 链表的优点 传入链表节点,则插入删除快,O(1) 由于没有下标,必须按顺序遍历,按下标查找慢,O(n 阅读全文
posted @ 2021-09-16 23:59 lucky_doog 阅读(68) 评论(0) 推荐(0) 编辑
摘要:顺时针打印矩阵 问题描述 JZ19 顺时针打印矩阵 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]] 则依次打印出数字 [1,2,3,4,8,12, 阅读全文
posted @ 2021-09-14 23:22 lucky_doog 阅读(54) 评论(0) 推荐(0) 编辑
摘要:反转链表-用二重指针解决 问题引入 输入一个链表,反转链表后,输出新链表的表头 题目:剑指offer-15.反转链表 一般情况下的解决办法 用if处理特殊情况 head为空的情况 只有一个节点的情况 用prev、curr、next来进行游走,维护链表 1 之前是这样的 ListNode* curr 阅读全文
posted @ 2021-09-14 00:19 lucky_doog 阅读(117) 评论(0) 推荐(0) 编辑
摘要:linus 提到过的单链表删除节点算法 1 问题描述 在TED上做过一次访谈,linus提到了关于编程的品味,他举了一个例子: linus在TED演讲_哔哩哔哩_bilibili 见原视频15'前后 解法1 解法2 这个例子要删掉一个链表的节点项 传入的参数是一个节点的引用 解法1,使用了prev 阅读全文
posted @ 2021-09-13 00:31 lucky_doog 阅读(353) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示