随笔分类 -  数据结构与算法

摘要:预备知识: 完全二叉树可以用数组表示: 从下标0开始存储数据:左子节点 = 2 * 父节点 + 1,右子节点 = 2 * 父节点 + 2; 从下标1开始存储数据:左子结点 = 2 * 父节点,右子节点= 2 * 父节点 + 1; 堆: 大根堆:父节点的值大于等于左右子节点的值; 小根堆:父节点的值小 阅读全文
posted @ 2023-10-02 18:05 小贼的自由 阅读(16) 评论(0) 推荐(0) 编辑
摘要:我搞了一个下午和一个晚上,网上的博客、视频讲得不清不楚,只会讲模拟却讲不出所以然,感觉真的很难!!!下面是自己的理解,不保证没问题! 以下代码按照该题来写:模板题:204. 计数质数。 简述:埃氏筛算法中,同一个合数会被多个质数标记(例如 45 这个数,它会同时被 3,5 两个数标记为合数),线性筛 阅读全文
posted @ 2023-04-04 22:41 小贼的自由 阅读(335) 评论(0) 推荐(0) 编辑
摘要:链接:树状数组_哔哩哔哩 (只有五分钟,多看几遍,就会了) 模板题:P3374 【模板】树状数组 1 - 洛谷 树结构:(上图是完整树结构,下图是树状数组树结构),代码对这写容易理解。 14.1 作用 求前缀和、区间和(跟前缀和的作用一样); 元素修改之后能高效更新:(时间复杂度) 前缀和:$O(l 阅读全文
posted @ 2023-04-03 18:10 小贼的自由 阅读(22) 评论(0) 推荐(0) 编辑
摘要:下面的代码均为 C++ 代码! 1. 普通快速幂 例题:50. Pow(x, n) 解法:递归或者迭代(时间复杂度均为O(log n),递归空间复杂度为 O(log n),迭代空间复杂度为 O(1) ); 迭代算法详解:(参考了官方题解:Pow(x, n) - 方 阅读全文
posted @ 2023-02-09 23:00 小贼的自由 阅读(49) 评论(0) 推荐(0) 编辑
摘要:不想废话了! 条件:升序数组; 结果:找得到的话返回 数组下标,找不到则返回 -1 ; 循环 //二分查找-循环(升序数组) int binarySearch(vector<int>& nums, int target) { int start = 0, end = nums.size() - 1, 阅读全文
posted @ 2021-07-13 22:24 小贼的自由 阅读(133) 评论(0) 推荐(0) 编辑
摘要:一.摘要 做题已经遇到很多矩阵旋转的题了,如果一个一个看还是不知道该怎么找规律,这里介绍一种个人觉得比较简便的方法。 二.步骤 原矩阵和顺时针旋转90°、180°和270°(逆时针90°)如下: 1.如果你一个一个去分析,列出它们元素的坐标,还是比较难找到规律的,而且还非常麻烦。首先,矩阵旋转,我们 阅读全文
posted @ 2020-06-29 16:21 小贼的自由 阅读(1127) 评论(0) 推荐(0) 编辑
摘要:一.摘要 list容器封装了一个 sort() 函数对链表进行排序,以前没动手写过链表的排序,当初以为觉得这不是轻而易举吗?今天的 linux c编程实验 要用到链表,真的是我想当然了,花费了一下午和一晚上的时间。真的有点不可思议。总的来说,说起来容易也不容易,难也不难,只要你思路清晰,感觉还是很容 阅读全文
posted @ 2020-05-18 01:24 小贼的自由 阅读(806) 评论(0) 推荐(0) 编辑
摘要:一.更相减损法 代码(C++描述): (局限性:x,y都为正数时才可用) 1 /**更相减损法求最大公因数和最小公倍数*/ 2 #include<iostream> 3 using namespace std; 4 int main(){ 5 int x,y,n,m; 6 cin>>x>>y; 7 阅读全文
posted @ 2020-05-05 16:32 小贼的自由 阅读(498) 评论(0) 推荐(0) 编辑
摘要:一.简介 快速幂的效率和普通乘法不会快太多,因为 “n=n*n”这个操作使得底的位数指数级增长,例如刚开始输入的底n为100,n=n*n执行了两次之后,n=10000,再执行一次之后n=100000000,n越大,n=n*n 消耗的时间越大。据我来看,快速幂的主要不是用于求精确数,主要计算结果对k取 阅读全文
posted @ 2020-05-02 22:48 小贼的自由 阅读(1681) 评论(0) 推荐(0) 编辑
摘要:(基本上是从百度百科搬过来的,虽然本大佬是宇宙无敌牛逼,但是有错还请指出~谢谢,有空请你一起抠脚~么么哒) 求底数为a的n次幂: 一般解法都是“a*a*a……*a”,复杂度为O(n); 下面是快速幂解法: 1.把n转换为二进制,例如: 11转换为二进制1011; 2.将n得到的二进制以“数位的值*权 阅读全文
posted @ 2020-04-27 22:41 小贼的自由 阅读(554) 评论(0) 推荐(0) 编辑
摘要:(本人知识 while(1)cout<<"非常"; 有限,如果你看到我有任何错漏或者不足,真的真的真的恳请大家指出,蟹蟹,我希望大家可以一起进步~) 一.摘要 int类型的变量只能存放-2^31~2^31-1范围的数据 long long类型的变量只能存放-2^63~2^63-1范围的数据 对于大数 阅读全文
posted @ 2020-04-09 17:49 小贼的自由 阅读(318) 评论(1) 推荐(0) 编辑

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