
数据结构与算法
文章平均质量分 83
Rsingstarzengjx
热爱技术,对新技术充满好奇心。
展开
-
【算法数据结构】leetcode37 解数独
回溯原创 2025-04-19 12:44:50 · 615 阅读 · 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 · 212 阅读 · 0 评论 -
递归
1.递归要要注意明确结束 条件,会栈溢出。package day22;public class DuiguiDemo { public static void main(String[] args) { show(6); System.out.println(" ---------"); show2(6); } //顺序1 ...原创 2019-06-05 18:27:33 · 168 阅读 · 0 评论 -
归并排序
归并排序归并思想画图分析:代码实现功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入归并思想讲解:https://ww...原创 2019-06-01 14:31:14 · 401 阅读 · 0 评论 -
递归思想----汉诺塔问题
汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作?https://www.bilibili.co...原创 2019-06-01 16:16:27 · 248 阅读 · 0 评论 -
数学规律题总结
http://www.aoshu.com/e/20181223/5c1f18447f011_2.shtml1.2.3.1. 25 ,49 ----- an=1+(n-1)*24 12<301/4 <13 a12= 289 规律: 后一个分子为前一个分数的 分子+分母 分母=当前...原创 2019-06-01 19:26:46 · 770 阅读 · 0 评论 -
快速排序--递归法
参考书:《java 数据结构与算法》package sort;import java.util.Arrays;public class QuickSort { public static void main(String[] args) { // int arr[]={6,5,7,7,9,2,8,0,3,5}; // int arr[]={1,5,7,1...原创 2019-06-02 16:29:52 · 199 阅读 · 0 评论 -
什么是堆?
①、它是完全二叉树,除了树的最后一层节点不需要是满的,其它的每一层从左到右都是满的。注意下面两种情况,第二种最后一层从左到右中间有断隔,那么也是不完全二叉树。 ②、它通常用数组来实现。 这种用数组实现的二叉树,假设节点的索引值为index,那么: 节点的左子节点是 2*index+1, 节点的右子节点是 2*index+2, 节点的父节点是 (inde...原创 2019-06-13 23:53:25 · 1321 阅读 · 0 评论 -
二叉树性质
1. i=1 ,n= 1=2^0 , i=2 n=2^(2-1) =2 , 假设 i=k n(k)= 2^(k-1)成立i =k+1 ,则至多则每一个节点都有两个子节点比k层多一倍 所以i=k+1, n=2*n(k) =2*2^(k-1)=2^(k)=2^(k+1-1) 等式成立。第i 层至少 有1 个结点。2.性质二:把性质一每一层相加起来。 S(k)=2^k -...原创 2019-06-03 23:20:37 · 968 阅读 · 0 评论 -
玩转数据结构-13-23树
1.红黑树的5个标准性质:1.所有节点非红即黑。2.根节点为黑。3.最后的NULL节点为黑。4.红节点的孩子一定为黑。5.黑平衡(其中B代表黑节点;R代表红节点) B / \ B R B/ \R R不满足性质4: B B / \ R ...原创 2019-06-20 22:00:27 · 1947 阅读 · 1 评论 -
多项式计算秦九韶算法
计算多项式:f(x)=a0 +ax+ax^2 +...+an*x^ndouble fun(int n,double a[] ,double x ){double p=a[0];for(int i=1;i<=n;i++){p+=a[i]*Math.pow(x,i);}}秦九韶方法:f(x)=a0 +x(a1+ x(a2+ (.....x(an))) )...原创 2019-07-25 12:44:42 · 3612 阅读 · 0 评论 -
leetCode 49 字母异位词分组 groupAnagrams
题目:https://www.acwing.com/solution/LeetCode/content/2519/ https://leetcode-cn.com/problems/group-anagrams/给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "a...原创 2019-07-30 15:37:59 · 190 阅读 · 0 评论 -
leetCode 20 :Valid Parentheses 有效括号
1.题意:* 20.有效的括号 valid Parentheses 括号匹配。* 给定一个只包括" { ,},[ ],( ) "的字符串,判断字符串是否有效* 括号必须以正确的顺序关闭,"( )" 和"{} ,(),[ ]" 是有效的但是* " ([)] " 不是。2.解题思路: 时间复杂度O(n) 空间复杂度O(n)1.左括号压栈 ,遇到右...原创 2019-08-07 16:10:39 · 159 阅读 · 0 评论 -
转一个搞ACM需要的掌握的算法.
要注意,ACM的竞赛性强,因此自己应该和自己的实际应用联系起来.适合自己的才是好的,有的人不适合搞算法,喜欢系统架构,因此不要看到别人什么就眼红,发挥自己的长处,这才是重要的.第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来.1.最短路(Floyd、Di...原创 2019-09-21 16:32:29 · 306 阅读 · 0 评论 -
玩转算法与数据结构O(N^2) 排序算法
简单排序算法衍生复杂排序算法。Selection_Sort 选择排序:选择出当前元素 后面的最小值与当前元素比较。泛型:插入排序:局部有序//插入排序#include<isostream>#include<algorithm>using namespace std;template<typename T>void i...原创 2019-05-31 12:42:45 · 281 阅读 · 0 评论 -
数据结构与算法 二分查找
条件:sorted :有序,单调递增,或者单调递减。 Bounded:存在上下边界。 Acssisible by index: 可到达。时间复杂度: log2(n) 空间复杂度 :O(1)图解: 1. 小于中间数 左边查找,大于中间数右边查找。 left =0 ,right=len(arry)-1;指向数组两端...原创 2019-02-11 10:37:23 · 293 阅读 · 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 · 273 阅读 · 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 · 171 阅读 · 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 · 261 阅读 · 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 · 316 阅读 · 0 评论 -
数据结构与算法 --java描述--8--二叉树
二叉树概念根:树的顶端节点叫做根,一颗树只有一个根。从根到其他任一个节点都必须有一条而且只有一条路径。父节点:每一条边恰好有一条边连接到上一个节点,上面的节点就是下面节点的父节点。字节点:每个节点可能有一条或者多条向下连接其他节点。叶节节点: 没有子节点的节点。子树:每个节点都可以作为子树的根,它和它的所有子节点。层:一个节点的层数等于从根开始的第几代。二叉树:如果树中的每个节...原创 2019-05-22 23:41:21 · 174 阅读 · 0 评论 -
北大机试的平台是bailian.openjudge.cn
http://openjudge.cn/原创 2019-05-23 16:55:52 · 909 阅读 · 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 · 334 阅读 · 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 · 339 阅读 · 0 评论