- 博客(14)
- 收藏
- 关注
原创 算法数据结构(异或运算)
背景知识:异或运算:相同为0,不同为1记:无进位相加。同或运算:相同为1,不同为0一、异或运算1.1什么是异或运算异或运算:相同为0,不同为1 无进位相加13——>011017——>0011113^7=?(异或运算)1.2异或运算的特点满足交换律结合律(一批数进行异或运算,不管顺序怎么变,结果都一样)1.3异或运算常见算法题1、如何不用额外变量交换两个数题目:a=17 b=13如何不用额外变量交换两个数?实现:...
2022-02-24 15:14:44
796
原创 算法数据结构(链表)
技巧:快慢指针法一、链表常用数据结构和技巧二、常见面试题1、链表回文结构1、用容器,用一个栈,先遍历一遍链表加到栈中,再遍历一遍与栈中弹出的比较。2、找到中点,右边的指针往回指,直到有一个指针为null,最后再恢复链表2、更改链表顺序用第一题的思想3、4、 有一个带有random指针的特殊链表的克隆使用容...
2022-02-24 15:14:27
212
原创 算法数据结构(二叉树)
先序:中序:后序:递归序:递归序中,每一个会有三次来到。、先序:第一次来到打印,其他不管就是图中1,2,3三个位置,三次回到自己二、练习题1、X在先序遍历中左边的集合与X在先序遍历中右边的集合取交集,是X的祖先节点原因:①先序遍历中,X所有祖先节点都在X左边,后序遍历中,X所有祖先节点在X右边②X所有的孩子节点,都不在交集内③下图的情况一个在左一个在又2、用非递归的方式实现二叉...
2022-02-24 15:13:56
190
原创 算法题做题技巧总结
一、二分法1、题型:题目能构造出左右两边的淘汰逻辑,需要的解能确定在一边有,就能使用二分法。局部最小值问题,只用在一边找到解,不用管另外一边是否有解,也可以使用二分法2、技巧:①为了防止越界,二分法的中点应该用L+((R-L)>>1)②注意二分法的边界条件,while循环中是L<=R,还是L<R,L<R是还有两个数,最后一个等于的场景还需要处理。...
2022-02-24 15:13:30
476
原创 算法数据结构(排序算法、二分法)
一、评估算法好坏的核心指标是什么?背景知识:1、常数时间操作(固定时间的操作):包含加减乘除运算以及寻址等。int a 32位int b 32位a+b--->都是固定位数的数进行运算,所以是固定时间的操作。寻址(连续结构) int[ ] nums; nums[14w];这些都是常数时间操作。1、时间复杂度(流程决定)假设数据量为N,执行完整个流程,常数时间的操作2、额外空间复杂度(流程决定)3、常数项时间(实现细节决定)二、简...
2022-02-24 15:13:01
262
原创 归并排序~
归并排序的思想:左部分先有序,右部分先有序,在用一个merge(归并)让它整体有序。merge:两个指针各指向左右两边第一个最小的数,谁小拷贝谁,相等拷贝左边的。递归实现,实现有序。利用mergeSort变得有序,这个有序能帮我们干很多事情。迭代实现:一个数组,步长为1时,两个位置去比较,merge。步长为2时,两组数merge。1、常见的mergeSort题1、小和问题:每个数左边的数 比自己小的数都累加起来,最后求和。两种标准:...
2022-02-24 15:12:47
155
原创 算法数据结构(荷兰国旗问题、快速排序)
一、荷兰国旗问题给你一个数组arr[ ]以及一个数x,将这个数组的结构调整为arr[i]<=x的放左边,arr[i]>x的放右边。1.1、将这个数组的结构调整为arr[i]<=x的放左边,arr[i]>x的放右边。思路:在数组的-1位置设置一个<=x的区域①当前数<=目标数,当前数和(<=x区域)下一个数交换,<=x区域向右扩,当前数跳下一个②当前数>=目标数,当前数数跳下一个1.2、将这个数组的结构调整为arr[i]<x.
2022-02-24 15:12:24
611
原创 算法数据结构(贪心算法)
一、贪心算法解释:贪心:局部(每一步)标准下最优解贪心策略有效:局部标准下的最优解推出全局的最优解二、从头到尾解一道贪心算法求解的习题解释:字典序:java中字符串排大小,字符串长度相等的时候直接比数字(字符的ASCII码),长度不一样的时候,较短的后面补最小的ASCII码,再和较长的比大小。举例:有一个矩阵,矩阵中只有0和1有一个小人,从矩阵左上角出发到右下角,到达右下角之后再回到左上角小人的运动轨迹:①从左上来到右下过程中,只能像右或者向下...
2022-02-24 15:12:13
125
原创 算法数据结构(堆和堆结构)
一、完全二叉树理解堆之前先了解完全二叉树。如果一个树是满的,它属于完全二叉树。如果一个树不满,但它处于正在变满的路上(从左往右),也属于完全二叉树。从左往右依次变满,属于跳过左孩子,直接右孩子,不属于从零出发的一个连续数组,可以被认为是一个完全二叉树。(脑子中想象的)这个数组想象出来的完全二叉树,i位置的左子孩子:2*i+1,右子孩子2*i+2,父节点(i-1)/2二、堆(1)是完全二叉树(2)大根堆:每一颗子树的最大值都是头结点的值。 ...
2022-02-24 15:11:45
224
原创 刷题笔记~
一、DFS1、LeetCode No12541、题目中要求封闭岛屿的数目,即有多少片被1包围的0。我们首先想到边界上的0是肯定不会被1包围的,连着边界上的0肯定也是不会被1包围的,所以要去除边界上的0和连着边界的0的干扰。因此遍历四个边界,边界上的每个点向下去做深度搜索,若是0的话改成1,排除干扰。2、此时二维数组中剩下的0肯定都是被1包围的了,遍历这个二维数组,遇到0,封闭岛数量加1同时深度遍历,把连着的0变成1.3、深度遍历(DFS):传入遍历到的点,上下左右做深度搜索,直到越界
2022-02-24 15:11:17
179
原创 oracle查询之单表查询
查询一共有6个子句书写顺序 执行顺序 作用select 5 显示,投影from 1 将文件载入内存并生成实例,并逐条取出做for循环where 2 筛选group by 3
2020-07-15 23:32:01
538
原创 Oracle数据库基础
ORACLE数据库基础Oracle数据库一、数据库基础DBS=DB+DBMS数据库系统=数据库+数据库管理系统数据库三大重点:设计,查询,编码SQL:Web服务器和数据库对话的语言(结构化查询语句)数据库内部存储结构有三种:1、关系型(表格)2、层次型3、网状型常见的数据库:oracle(甲骨文公司) mysql(中小型数据库)sql-server(微软)二、数据库的设计数据库的三大范式(设计表格时需要注意的三点):第一范式:数据库表中的所有字段值都是不可分解的原子值(数据
2020-07-15 23:24:59
137
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人