算法数据结构学习笔记
文章平均质量分 65
有些鸟儿天生就是关不住的,它们的羽毛太鲜明,歌声太甜美、也太狂野了,所以你只能放它们走,否则哪天你打开笼子喂它们时,它们也会想办法扬长而去。
Rsingstarzengjx
热爱技术,对新技术充满好奇心。
展开
-
华为机试2022试卷 三道题
1. 最大值179. 最大数 (leetcode)给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。输入:nums = [10,2]输出:"210" 解法:自定义排序,利用比较传递性Class Solution{ public String largestNumber(int[] nums){ int n =nums.length(); ...原创 2022-02-26 15:41:33 · 3950 阅读 · 2 评论 -
单调栈问题
1. 【单调栈】用于检测侧数据的单调性变化并做出反应:入栈元素影响栈总体单调性时,要出栈一些元素以维持单调性。栈内元素大小关系:从栈底到栈顶依次变大叫做单调递增栈。维护单调栈单调性有什么作用?5 入栈时:栈内元素【1,2,4】 。对于1元素而言,之前(左边)比它大的元素依次为2 ,4 。5入栈时,为了维护栈内元素的单调性,由于5大于栈内所有元素所以1,2,4 出栈变成空栈【】表示当前没有比5大的元素。5 入栈此时栈变为【5】。栈顶: 对于栈顶元素D而言,右边比D大的第一个数为当前入栈元素.原创 2020-11-08 14:17:55 · 224 阅读 · 0 评论 -
5-getMIn栈
题目描述实现一个特殊功能的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。输入描述:第一行输入一个整数N,表示对栈进行的操作总数。下面N行每行输入一个字符串S,表示操作的种类。如果S为"push",则后面还有一个整数X表示向栈里压入整数X。如果S为"pop",则表示弹出栈顶操作。如果S为"getMin",则表示询问当前栈中的最小元素是多少。输出描述:对于每个getMin操作,输出一行表示当前栈中的最小元素是多少。示例1输入6push 3push 2push 1.原创 2020-11-07 17:34:59 · 163 阅读 · 0 评论 -
3-不重复打印arr中所有相加和为k的不降序二元组
题目描述[https://www.nowcoder.com/practice/1ff1a607c81748baa1823ffa687d74c4?tpId=101&tags=&title=&diffculty=0&judgeStatus=0&rp=1]给定排序数组arr和整数k,不重复打印arr中所有相加和为k的不降序二元组 例如, arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9], k = 10,打印结果为:原创 2020-11-07 16:49:15 · 252 阅读 · 0 评论 -
2-最大可整合子数组的长度
1.题目描述先给出可整合数组的定义:如果一个数组在排序之后,每相邻两个数的差的绝对值都为1,或者该数组长度为1,则该数组为可整合数组。例如,[5, 3, 4, 6, 2]排序后为[2, 3, 4, 5, 6],符合每相邻两个数差的绝对值都为1,所以这个数组为可整合数组 给定一个数组arr, 请返回其中最大可整合子数组的长度。例如,[5, 5, 3, 2, 6, 4, 3]的最大可整合子数组为[5, 3, 2, 6, 4],所以请返回5 [要求] 时间复杂度为O(n2)O(n^2)O(n2),空原创 2020-11-07 15:52:53 · 178 阅读 · 0 评论 -
递归思想----汉诺塔问题
汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作?https://www.bilibili.co...原创 2019-06-01 16:16:27 · 207 阅读 · 0 评论 -
归并排序
归并排序归并思想画图分析:代码实现功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入归并思想讲解:https://ww...原创 2019-06-01 14:31:14 · 369 阅读 · 0 评论 -
玩转算法与数据结构O(N^2) 排序算法
简单排序算法衍生复杂排序算法。Selection_Sort 选择排序:选择出当前元素 后面的最小值与当前元素比较。泛型:插入排序:局部有序//插入排序#include<isostream>#include<algorithm>using namespace std;template<typename T>void i...原创 2019-05-31 12:42:45 · 244 阅读 · 0 评论 -
哈希表
地址:https://www.bilibili.com/video/av52332796?from=search&seid=14165775442033723279哈希函数:记录的存储位置与关键字之间存在对应关系:Loc(i)=H(keyi)K对100取 余 则 k%100 的范围在0—100 之间。例如要查找39 ,先%100 得出39再与39 位置比较。冲...原创 2019-05-23 19:43:25 · 255 阅读 · 0 评论 -
北大机试的平台是bailian.openjudge.cn
http://openjudge.cn/原创 2019-05-23 16:55:52 · 773 阅读 · 0 评论 -
2019 打卡算法题1
1.知识点。向上取整证明 https://blog.csdn.net/hanchengxi/article/details/8454589题目:https://www.acwing.com/problem/content/569/牛家村的货币是一种很神奇的连续货币。他们货币的最大面额是n,并且一共有面额为1,面额为2.....面额为n,n种面额的货币。牛牛每次购买商品都会带上...原创 2019-04-03 21:33:53 · 288 阅读 · 0 评论 -
[java 算法与数据结构 栈和队列 ] 用数组实现栈
目录1.整数型栈2.用栈实现字符串逆序1.对应第4章栈只允许访问一个数据项,移除这个项才可以访问下一个项。push 压栈 向栈顶填入一个项,pop移除栈顶 top 箭头指向当前栈顶位置。1.整数型栈package com.java.base;/** * Created by zengjx on 2019/3/4. */public clas...原创 2019-03-04 15:50:07 · 223 阅读 · 0 评论 -
【排序】插入排序 希尔排序
《Java算法与数据结构》时间 复杂度:从下标为1的元素开始开始选择合适位置拆入因为下标5 4 3 2 1 -------------------------temp=a[i]记录要插入的值j=i;// j的作用是当前值与 用于比较 a[0]--- a[j-1]比较条件 j>0 temp<a[j-1] 则向右移动j--a[j]=tem...原创 2019-03-04 11:21:44 · 147 阅读 · 0 评论 -
数据结构与算法 二分查找
条件:sorted :有序,单调递增,或者单调递减。 Bounded:存在上下边界。 Acssisible by index: 可到达。时间复杂度: log2(n) 空间复杂度 :O(1)图解: 1. 小于中间数 左边查找,大于中间数右边查找。 left =0 ,right=len(arry)-1;指向数组两端...原创 2019-02-11 10:37:23 · 264 阅读 · 0 评论 -
[算法 数据结构 数学 题]
【牛客】抽屉里有100个红球、100个蓝球、100个黄球、100个橙球,现在每个人过来随机抽一个球,最多____个人抽完之后,能保证一定集齐20个相同颜色的球。考察抽屉原理(鸽巢原理),结果为n(r-1)+1,表示将n(r-1)+1个物体放入n个盒子中,则至少有一个盒子中有r个物体。对应此题就是4(20-1)+1=77链接:https://www.nowcoder.com/questi...原创 2019-03-05 09:50:34 · 230 阅读 · 0 评论 -
[数据结构与算法] 1 单向链表 实现栈 , 双端链表实现队列,双向链表
1.package List;import android.content.ContentUris;import android.content.Context;/** 参考:https://www.cnblogs.com/ysocean/p/7928988.html * Created by zengjx on 2019/1/25. */public class Sin...原创 2019-01-26 11:22:21 · 313 阅读 · 0 评论