自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

覃会程的博客

致力于Java开发,喜欢算法

  • 博客(20)
  • 问答 (3)
  • 收藏
  • 关注

原创 Java 容器类的总结和实现原理

  Java中的容器有三大类:Set,List,Map;它们之间的关系如下图:LIst:  继承于Collection,是抽象类,主要有两个子类ArraList和LinkList。特点:元素有序,可重复。ArrayList:底层是采用数组实现。查找快,增删慢。线程不安全LinkList:底层采用链表实现。查找慢,增删快。线程不安全Vector:也是采用数组实...

2020-03-29 11:41:31 5522

原创 Java内存分析(栈、堆、方法区的联系和特点)

Java虚拟机的内存可以分为三个区域:栈stack、堆heap、方法区method area。栈的特点如下:栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)JVM为每一个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)。栈的存储特性是“先进后出,后进先出”。栈是有系统自动分配、速度快!栈是一个连续的内存空间。堆的特...

2020-03-20 12:54:35 1376 1

原创 贪心和动态规划总结

贪心法:最优子结构:对比,不是进行各种可选支路的试探,而是当下就可用每种策略确定选择,无需考虑未来(未来情况的演变也影响不了当下的选择)。只要一直这么选下去,就能得出最终的解,每一步都是当下(子问题)的最优解,结果是原问题的最优解,这叫最优子结构。更书面的说法是:如果问题的一个最优解中包含了子问题的最优解,则该问题具有最优子结构。贪心与DFS:具备这类结构的问题,可以用局部最优解来推导全...

2020-03-19 11:26:00 5472

原创 最长递增子序列

问题描述:给定一串数字,输出这串数字中最长递增子序列的长度。例如:输入:4 2 3 1 5输出:3(因为2 3 5组成了最长子序列)解法一:  暴力法,两层循环,依次遍历。代码如下:import java.util.*;public class 最长递增子序列 { public static void main(String[] args){ int[] arr = ...

2020-03-19 10:13:12 936

原创 动态规划解决完全背包问题

问题描述:    给定N个物品,并且给出他们的价值和重量。给一个承重最多为WW袋子,问用这个袋子装物品,能得到的最大价值是多少?解题思路:    这个和01背包问题最大的区别在于每一种物品可以选择多个。建立dp表,行表示当前最大容量,列表示当前的可选范围。每一个单元格表示在当前最大容量以及可选范围内可以得到的最大价值。我们可以首先对第一行和第一列进行初始化,第一列也就是最大容量是0时能获得的...

2020-03-18 13:16:55 1321

原创 求最大公共子序列问题

问题描述:给定两个字符串s1和s2;输出它们的最大公共子序列。子序列和子数组不同,子数组是连续的;而子序列不要求是连续的,只要前后顺序关系一致就行。例如:输入:AB34CA1BC2输出:ABC输入:3563243513141输出:534解法一:用递归的解法,遍历其中一个字符串,对其中的每一个字母在另一个字符串中找相同。找到后把剩余的字符串进行下一轮的递归。即在双层循环...

2020-03-17 14:53:31 1234

原创 数字三角形求最大路径和的多种解法

问题描述:  在数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或者右下走,只需要求出这个最大和即可,不需要给出具体路径。例如:7 3 88 1 02 7 4 44 5 2 6 5解法一:  递归。每一个点都有两个方向选择,所以递归树是二叉树。代码如下:import java.util.Scanner;public cl...

2020-03-15 13:57:42 2912

原创 算法导论中的钢条切割问题

问题描述:  公司购买长钢条,将其切割为短钢条进行出售,切割工序本身没有成本支出,公式管理层希望知道最佳的切割方案。假定我们知道公司出售一段长为i英寸的钢条价格为pi;钢条的长度均为整英寸。给定一段长度为n英寸的钢条和一个价格表pi,求切割钢条方案,使得销售收益最大。如果长度为n英寸的钢条的价格足够大,最优解可能就是完全不用切割。长度:1, 2, 3, 4, 5, 6, 7, 8, 9,10...

2020-03-15 11:22:04 1248

原创 01背包问题的多种解法

问题描述:有n个重量和价值分别为wi,vi的物品,从这些物品中挑选出重量不超过W的物品,求所有挑选方案中价值总和的最大值。对于每一个物品都只有选和不选的两种选择;所以称为01背包问题。解题思路:  首先声明记忆型递归(也叫记录型递归)的特点,记忆型递归主要用于求解子问题有重叠现象的递归;是为了避免将一个子问题多次求解;所以在求解子问题是将子问题的解记录下来,到再一次碰到相同的子问题时不需要再...

2020-03-13 11:22:41 4150 1

原创 贪心法解决最小字典序问题

问题描述:给定一个长度为n的字符串S,构造一个字符串T,长度也为n;起初,T是一个空字符串,随后反复进行以下操作:1、从S的头部删除一个字符,加到T的尾部。2、从S的尾部删除一个字符;加到T的尾部。目标是:最后生成的字符串T的字典序尽可能小。解题思路:每次选取的时候将头尾两个字符对比,将字典序小的删除并添加到T中。我们可以将S给逆序,保存为另一个字符串。然后将逆序的S和正序的S首字符的...

2020-03-12 13:45:39 1907

原创 蓝桥杯基础练习所有非VIP习题解答C语言

数列排序资源限制时间限制:1.0s 内存限制:512.0MB问题描述  给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200输入格式  第一行为一个整数n。  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式  输出一行,按从小到大的顺序输出排序后的数列。样例输入58 3 6 4 9样例输出3 4 6 8 ...

2020-03-10 14:12:18 1728

原创 蓝桥杯基础练习所有VIP习题解析代码

试题 基础练习 阶乘计算资源限制时间限制:1.0s 内存限制:512.0MB问题描述  输入一个正整数n,输出n!的值。  其中n!=123*…*n。算法描述  n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。  将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注...

2020-03-10 12:21:21 6073

原创 CSS表格和表单设置

表格:  再HTML中使用table标签来创建一个表格;在table标签中使用tr标签来表示表格中的一行;在tr标签中使用td来常见一个单元格。可以用th标签来表示表头(自动加粗和居中);th的用法和td一样;table是一个块元素。  表格的列数有td最多的那行决定。  td标签中可以使用colspan来合并横向的单元格。合并两个单元格如下:<td colspan="2">D...

2020-03-09 18:00:41 1617 1

原创 CSS元素定位和背景图片设置

定位:定位是指将元素摆放到页面的任意位置,通过定位可以任意的摆放元素。通过position属性来设置元素的定位.可选值:1. static:默认值,没有开启元素的定位。2. relative:开启元素的相对定位。3. absolute:开启元素的绝对定位。4. fixed:开启元素的固定定位(也是绝对定位的一种)。当开启了元素的定位(position属性值是一个非static的值)...

2020-03-09 17:59:20 3126

原创 CSS解决高度塌陷问题

高度塌陷问题:  在文档流中,父元素的高度默认是被子元素撑开的;也就是子元素多高,父元素就多高。但是当为子元素设置浮动以后,子元素会完全脱离文档流;这是将会导致子元素无法撑起父元素的高度,导致父元素的高度塌陷。由于父元素的高度塌陷了,则父元素下面的元素都会向上移动,这样将会导致页面布局混乱。解决方案1之开启BFC:  可以将父元素的高度写死,但父元素的高度将不能自动适应于子元素的高度。不推荐...

2020-03-09 17:57:52 989 1

原创 CSS文档流和浮动

文档流:  文档流处于网页的最底层,它表示一个页面中的位置;我们创建的元素都默认在文档流中。元素在文档流中的特点:块元素:块元素在文档流中会独占一行,块元素会自上向下排列。块元素在文档流中默认宽度是父元素的100%。块元素在文档流中的高度默认被内容撑开。内联元素:内联元素在文档流中只占自身大小,默认从左向右对齐;如果一行中不足以容纳所有的内联元素,则换到下一行。内联元素的宽...

2020-03-09 17:56:37 917

原创 贪心法解决区间调度(不相交区间和区间选点)问题

问题描述:有n项工作,每项工作分别在si时间开始,ti时间结束。对于每项工作,你都可以选择是否参与,如果选择了参与,那么自始至终都必须全程参与。此外,参与工作的时间段不能重复(即使是开始的瞬间和结束的瞬间的重叠也是不允许的)。你的目标是参与尽可能多的工作,那么最多能参与多少项工作?输入:第一行:n第二行:n个整数空格隔开,代表n个工作的开始时间第三行:n个整数空格隔开,代表n个工作的结束...

2020-03-09 12:11:55 1162

原创 CSS盒子模型相关知识总结

盒子模型(框模型)概念:CSS处理网页时,他认为每一个元素都包含在一个不可见的盒子里。如果把所有的元素都想象成盒子,那么我们队网页的布局就像是在摆放盒子。我们只需要将相应的盒子摆放到网页中相应的位置即可完成网页的布局。盒子模型可以分成几个部分:内容区(content)内边距(padding)边距(border)外边距(margin)盒子模型的边框样式:width:用来设置盒...

2020-03-02 19:55:11 1055

原创 递归,DFS,回溯的总结

逐步生成类型的递归题型:  逐步生成类型的题,一般都是求n的解,然后n的解可以通过(n-1 )的解推出,(n-1)的解又可以通过(n-2)的解推出,以此类推直到找到一个现在已知的解(一般是n=1时),就可以推出n的解。整个过程有点类似于数学归纳法。机器人走方格硬币凑数问题括号组合问题生成所有子集全排列的多种写法(可以用逐步生成的方式也可以用DFS)DFS类型的递归题型:DF...

2020-03-01 12:44:43 1045

原创 蓝桥杯VIP 基础练习 2n皇后问题

问题描述:  给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。输入格式  输入的第一行为一个整数n,表示棋盘的大小。  接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一...

2020-03-01 11:17:19 1022

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除