![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
unknown-null
这个作者很懒,什么都没留下…
展开
-
基础排序算法总结
冒泡排序AC选择排序AC插入排序AC归并排序AC快速排序AC堆排序AC希尔排序(略)冒泡排序ACpackage basicSort;//nowcoder passpublic class BubbleSort { public int[] bubbleSort(int[] a, int n) { for (int i = 0; i < n - 1; i++) {//要进行n-1次 boolean finish =原创 2022-04-15 10:49:13 · 482 阅读 · 0 评论 -
动态规划总结
最长递增子序列AC最长公共子序列AC最长公共子串AC最小编辑代价AC最长公共子序列和最长公共子串的区别1.递推公式求解dp子序列:s1[i-1]==s2[j-1]dp[i][j]=dp[i-1][j-1]+1s1[i-1]!=s2[j-1]dp[i][j]=max(dp[i-1][j],dp[i][j-1])子串:s1[i-1]==s2[j-1]dp[i][j]=dp[i-1][j-1]+1s1[i-1]!=s2[j-1]dp[i][j]=0...原创 2022-04-15 10:40:42 · 627 阅读 · 0 评论 -
链表算法总结
从尾到头打印链表AC链表的倒数第K个节点AC反转链表AC合并递增链表AC复杂链表复制AC链表的第一个公共节点AC二叉搜索树转为双向链表AC判断链表是否有环AC链表的入环节点AC1.从尾到头打印链表AC《剑指offer》题目4package linkedlist;import java.util.ArrayList;/** * 题目描述: * 输入一个链表,从尾到头打印链表每个节点的值。 * 思路: * 联想到二叉树的递归遍历(先序,中序,后序), * 很明显的思路是想到原创 2022-04-15 10:22:55 · 320 阅读 · 0 评论 -
二分查找总结
public class BinarySearch { public int binarySearch(int[] arr, int key) { if (arr == null) { return -1; } int low = 0; int high = arr.length - 1; while (low<= high) { int mid = (low + high) / 2; if (arr[mid] == key) { re.原创 2022-04-15 10:13:58 · 297 阅读 · 0 评论 -
二叉树算法总结
二叉树的递归遍历(先序,中序,后序)AC二叉树的非递归遍历(先序,中序,后序)AC二叉树的层次遍历AC二叉树的之字形遍历AC二叉树的先序遍历、中序遍历重建二叉树AC二叉树中和为某一值的路径(路径问题)AC求二叉树的深度AC求二叉树的镜像AC求二叉树的最低公共祖先AC判断二叉树是否为二叉树的子结构AC判断二叉树是否为平衡二叉树AC判断二叉树是否为对称二叉树AC序列化二叉树AC二叉搜索树转为双向链表AC二叉搜索树的第k个节点AC判断是否为二叉搜索树的后序遍历序列AC二叉树的递归遍原创 2022-04-15 09:20:07 · 746 阅读 · 0 评论 -
【牛客BAT算法】9.动态规划
什么是动态规划方法?1.其本质是利用申请的空间来记录每一个暴力搜索的计算结果,下次要用结果的时候直接使用,而不再进行重复的递归过程2.动态规划规定每一种递归状态的计算顺序,依次进行计算动态规划方法的关键点:1.最优化原理,也就是最优子结构性质。指的是一个最优化策略具有这样的性质,不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。简单说就是一个最优化策略的子策略总是最优的,如果一个问题满足最优化原理,就称其具有最优子结构性质。2.无后效性。指的原创 2022-04-15 09:10:10 · 291 阅读 · 0 评论 -
【LeetCode】P029_DivideTwoIntegers
【题目】Divide two integers without using multiplication, division and mod operator.If it is overflow, return MAX_INT.题目的意思就是:不使用*、/、%运算符进行除法运算【思路】这道题最直接的想法,就是被除数每次减去除数,计算减了多少次,即为所求。但是这个办法的效率太低,试想被除数是Integ原创 2015-09-07 11:01:11 · 331 阅读 · 0 评论 -
【牛客BAT算法】1.排序
时间复杂度:O(N^2):冒泡排序,选择排序,插入排序O(N*logN):归并排序,快速排序,堆排序,希尔排序桶排序:不是基于比较的排序计数排序:O(N)基数排序:空间复杂度:O(1):插入,选择,冒泡,堆排,希尔O(logN)~O(N):快排O(N):归并O(M):计数排序,基数排序, M为桶的数量稳定性:稳定的排序算法:冒泡,插入,归并,计数排序,基数排序,桶排序不稳定的排序算法:选择,快排,希尔,堆排补充说明一:排...原创 2020-12-03 18:01:26 · 144 阅读 · 0 评论 -
【牛客BAT算法】2.字符串
字符串面试题的特点1.广泛性a. 字符串可以看做是字符类型的数组,与数组排序、查找、调整有关b.很多其他类型的面试题可以看做是字符串类型的面试题(看似与字符串无关,深度剖析后可用字符串进行处理)Java中可使用StringBuffer,StringBuilder和toCharArray方法2.需掌握的概念1)回文2)子串(连续)3)子序列(不连续)4)前缀树(Trie树)5)后缀树和后缀数组6)匹配7)字典序3.需掌握的操作1)与数组有关的操.原创 2020-12-03 18:21:53 · 446 阅读 · 0 评论 -
【牛客BAT算法】3.队列和栈
基础知识栈的基本操作:pop,top或peek,push,size队列的基本操作:栈,队列,双端队列,优先级队列优先级队列为根据元素的优先级值,决定元素的弹出顺序。优先级队列的结构为堆结构,并不是线性结构。深度优先遍历(DFS)和宽度优先遍历(BFS)深度优先遍历:栈或递归宽度优先遍历:队列案例一:实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作getMin要求:1.pop,push,getMin的时间复杂度都为O(1)...原创 2020-12-03 18:31:08 · 144 阅读 · 0 评论 -
【牛客BAT算法】4.链表
目录基础知识案例一:有序环形链表的插入案例二:删除给定节点值案例三:给定num,将链表分为小于num、等于num、大于num三部分案例四:两个有序链表的公共部分案例五:给定一个单链表的头结点head,实现一个调整单链表的函数,使得每K个节点之间逆序,如果最后不够K个节点一组,则不做调整。案例六:删除链表中值为val的节点案例七:判断一个链表是否为回文结构。案例八:复杂链表的复制案例九:判断一个单链表是否有环,及环的入口点案例十:判断两个无环单链表是否相交案例十原创 2020-12-03 18:53:55 · 197 阅读 · 1 评论 -
【牛客BAT算法】5.二分搜索
目录二分搜索常见的应用场景二分搜索常见题目的变化案例一:给定无序数组arr,已知任意相邻的两个元素,值都不重复,请返回一个局部最小的位置。案例二:出现的最左的位置案例三:有序循环数组寻找最小值案例四:给定一个有序整型数组arr,其中不含有重复元素,请找到满足arr[i]=i条件的最左的位置。如果所有位置上的树都不满足条件,返回-1。案例五:给定一棵完全二叉树的头结点head,返回这棵树的节点个数。如果完全二叉树的节点数为N,实现时间复杂度低于O(N)的算法。案例六:整数K的N原创 2020-12-03 19:02:15 · 101 阅读 · 0 评论 -
【牛客BAT算法】6.二叉树
目录二叉树类型的题目为常考题型案例一:用递归方式和非递归式实现二叉树的先序、中序和后序的遍历打印。先序遍历:中序遍历:后序遍历:案例二:给定二叉树的头结点head,要求按照以下格式打印案例三:二叉树的序列化与反序列化案例四:判断一棵树是否为平衡二叉树案例五:判断一棵树是否是搜索二叉树案例六:判断一棵树是否是完全二叉树案例七:求二叉树节点的后继节点案例八:折纸对折N次,从上到下打印所用折痕的方向案例九:找出搜索二叉树中的错误节点案例十:节点间的最大距离原创 2020-12-04 11:54:23 · 394 阅读 · 0 评论 -
【牛客BAT算法】7.位运算
目录基础知识案例一:布隆过滤器案例二:不用任何额外变量交换a和b的值案例三:给定两个32位整数a和b,返回a和b中较大的。不能用任何比较运算。案例四:给定一个整型数组arr,其中只有一个数出现了奇数次,其他的都出现了偶数次,请打印这个数。案例五:给定一个整型数组arr,其中两个数出现了奇数次,其他的都出现了偶数次,请打印这两个数。案例六:设计加密过程,完成对text的加密和解密基础知识位运算的操作符& | ^ ~ << >...原创 2020-12-04 12:01:20 · 242 阅读 · 0 评论 -
【牛客BAT算法】8.大数据
目录海量数据的常见处理技巧案例一:请对10亿个IPV4的ip地址进行排序,每个ip只会出现一次案例二:请对10亿人的年龄进行排序案例三:有一个包含20亿个全是32位整数的大文件,在其中找出出现次数最多的数,但是内存限制只有2G案例四:找出没有出现过的数字案例五:海量数据TopN问题案例六:一致性哈希海量数据的常见处理技巧常见海量数据处理题目解题关键1.分而治之,通过哈希函数将大任务分流到机器,或分流成小文件2.常用hashMap或bitmap3.难点:通讯,时原创 2020-12-04 12:14:42 · 314 阅读 · 0 评论 -
样本问题
#include/*问题描述:有10箱产品,每箱有1000件,正品每件100克。其中有几箱是次品,每件次品比正品轻10克。问能否用称只称一次,就能找出哪几箱是次品。*/int main(){ int i,n; int w1,w,t; printf("input the number of boxes:"); scanf("%d",&n); t原创 2012-12-26 10:40:44 · 1245 阅读 · 0 评论 -
马的遍历问题
#include/*问题描述:在n*m的棋盘上,马只能走日字。马从(x,y)出发,把棋盘的每一个点都走一遍,且只走一次,找出所有路径。*/void find(int x,int y,int dep);int check(int x,int y);void output();int n=5,m=4;int fx[8]={1,2,2,1,-1,-2,-2,-原创 2020-12-08 11:42:58 · 5514 阅读 · 0 评论