随笔分类 - 算法
摘要:学习文章:C语言中的窗口滑动技术 滑动窗口法 C语言中的窗口滑动技术 循环几乎是每个复杂问题的一部分。太多的循环/嵌套循环会增加所需的时间,从而增加程序的时间复杂性。窗口滑动技术是一种计算技术,用于减少程序中使用的嵌套循环的数量,通过用单个循环代替嵌套循环来提高程序的效率。 如果你熟悉计算机网络中的
阅读全文
摘要:力扣26-2023.4.3 问题 26. 删除有序数组中的重复项 方法 思路: 遍历数组,若后一个和前一个相同,则继续下一个;若后一个与前一个不同,则直接赋值。 C++程序: #include <iostream> #include <vector> using namespace std; int
阅读全文
摘要:十大经典排序算法复习 转载文章:https://mp.weixin.qq.com/s/2_G89v9PR7g9O7U4cOdnKg 10种经典排序算法:冒泡排序、选择排序、快速排序、归并排序、堆排序、插入排序、希尔排序、计数排序、桶排序、基数排序。 排序算法 冒泡排序 冒泡排序(Bubble Sor
阅读全文
摘要:1、 << : 左移运算符,num << 1,相当于num乘以2 低位补0 3<<2 12 2、>> : 右移运算符,num >> 1,相当于num除以2 高位补0 3 >>2 0 3 >>1 1 3、>>> : 无符号右移,忽略符号位,空位都以0补齐 4、% : 模运算 取余 5、^ : 位异或
阅读全文
摘要:hash函数 hash函数,简单点说,就是输入一个数,输出一个数,输出具有唯一性,输入和输出具有一一映射关系,该函数叫做哈希函数或杂凑函数,输出值叫做哈希值或杂凑值,常见的杂凑算法有:Md5、Sha256、SM3等。 Hash通过Hash函数,将Key值映射为地址,Address = F[key];
阅读全文
摘要:单项选择题 1.题 (3.0分) 以下叙述正确的是()。 A.在C程序,至少要包含一个库函数 B.C程序的一行可以写多条语句 C.对一个C程序进行编译就可以生成可执行文件 D.C程序中的注释只能单独一行,不能位于某条语句的后面 2.题 (3.0分) 下面选项中,是不合法的C语言整型常量的是()。 A
阅读全文
摘要:计算复杂度 计算复杂度由算法决定,一个数学问题通常可同时有多个解决算法,而计算复杂度可表述算法的复杂程度,在密码设计和密码分析中具有重要作用。计算复杂性理论不仅反映密码破译的固有困难性,评测密码算法对抗密码破译的实际能力,还能为不同密码算法实现难度的分析与比较提供了方法。 算法复杂度一般由执行算法所
阅读全文
摘要:区间k大数查询 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式 第一行包含一个数n,表示序列长度。 第二行包含n个正整数,表示给定的序列。 第三个包含一个正整数m,表示询问个数。 接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大
阅读全文
摘要:数列排序 问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200 输入格式 第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式 输出一行,按从小到大的顺序输出排序后的数列 样例输入 58 3 6 4 9 样例输出 3 4
阅读全文
摘要:参考: 1 2 Set 家族 推荐:java 8 API Set:集合,里面不能有重复元素 Set 在 Java 中是一个接口,可以看到它是 java.util 包中的一个集合框架类,具体的实现类有很多: 其中比较常用的有三种: HashSet: 采用 Hashmap 的 key 来储存元素,主要特
阅读全文
摘要:两数之和 方法1:暴力破解 时间复杂度:O(N2) 空间复杂度:O(1) go代码 package main import "fmt" func twoSum(nums []int, target int) []int { // 暴力破解 for i := 0; i < len(nums); i++
阅读全文
摘要:二叉排序树 二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。 性质 二叉排序树或者是一棵空树,是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于
阅读全文
摘要:数组、字符串【Array、String】 字符串转化 数组和字符串是最基本的数据结构,在很多编程语言中都有着十分相似的性质,而围绕着它们的算法面试题也是最多的。 很多时候,在分析字符串相关面试题的过程中,我们往往要针对字符串当中的每一个字符进行分析和处理,甚至有时候我们得先把给定的字符串转换成字符数
阅读全文
摘要:单链表 插入结点 p、q间插入 #include <stdio.h> #include <stdlib.h> //单链表定义 struct slist { int data; struct slist *next; }; //简单插入一个数【p、q间插入】 void main() { struct
阅读全文
摘要:整数数组排序,正序和反序 参考:十大经典排序算法 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选
阅读全文
摘要:递归 递归常被用来描述以自相似方法重复事物的过程,在数学和计算机科学中,指的是在函数定义中使用函数自身的方法。(A调用A) 递归是一个树结构,从字面可以其理解为重复“递推”和“回归”的过程,当“递推”到达底部时就会开始“回归”,其过程相当于树的深度优先遍历。 递归循环中,遇到满足终止条件的情况时逐层
阅读全文