![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计与分析
因为爱,所以喜欢
一生很长,要和有趣的人在一起
展开
-
动态规划之矩阵连乘
题目描述:给定n个矩阵{A1,A2,…,An},其中,Ai与Ai+1是可乘的,(i=1,2 ,…,n-1)。用加括号的方法表示矩阵连乘的次序,不同的计算次序计算量(乘法次数)是不同的,找出一种加括号的方法,使得矩阵连乘的次数最小。例如:A1是A(5*10)的方阵;A2是A(10*...原创 2019-08-09 12:22:44 · 602 阅读 · 0 评论 -
n个元素进栈,共有多少种出栈顺序?
我们把n个元素的出栈个数的记为f(n), 那么对于1,2,3, 我们很容易得出:f(1) = 1//即 1f(2) = 2 //即 12、21f(3...原创 2019-08-26 19:59:23 · 6508 阅读 · 0 评论 -
两个链表的第一个公共结点
输入两个链表,找出它们的第一个公共结点。分析:两个单链表如果存在第一个公共结点,则后续结点一定都公共,因为结点里包含next指针,如果第一个公共结点相同,则next必然相同,所以第一个公共结点后链表合并。思路1:设表1长度n,表2长度m,暴力法嵌套遍历两个链表需要O(mn)的时间复杂度, 可以采用hash的思想将其中一个转存为哈希表结构,这样建...原创 2019-08-16 12:22:26 · 176 阅读 · 0 评论 -
strlen函数实现(局部变量实现和不用局部变量实现)/2019.08.16
#include<stdio.h>#include<assert.h>/* *strlen函数有局部变量实现*/int strlen1(const char* source){ assert(source != NULL); //断言 int length = 0; while (*source) { length++; source++; } ...原创 2019-08-16 11:52:06 · 236 阅读 · 0 评论 -
快手版本号问题2019/08/25
package demo4.jd;import java.util.Scanner;//第一题 比较版本号public class test6 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int m...原创 2019-08-25 21:58:07 · 13041 阅读 · 0 评论 -
全排列
全排列的基本思想是:把待全排列记录分为两个部分:(1) 第一个记录(2) 剩下的所有元素所有记录的全排列就是所有可能出现在第一个位置的记录与剩下所有元素的全排列。以[1,2,3]为例,1,2,3的全排列可以看作是1,[2,3的全排列][2,3]的全排列又可以看作是2,[3的全排列]—————对应1233,...转载 2019-08-16 00:21:30 · 4548 阅读 · 0 评论 -
House Building(几何体表面积)360笔试/2019.08.15
OutputSample Input23 31 0 03 1 21 1 03 31 0 10 0 01 0 1Sample Output30 20分析:首先计算出有多少个立方体,乘以6以后减去被遮盖的面的面积;有三种1.底面的不计算;2.上下的遮盖;3.前后左右的覆盖;1 2都很好解决,3用两次二维循环,判断连续的两个位置是否都不...原创 2019-08-15 23:49:31 · 110 阅读 · 0 评论 -
贝壳找房面试题2019/08/10
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); long[] number = new long[n];...原创 2019-08-11 10:03:42 · 1499 阅读 · 0 评论 -
Java中的线程池
Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序 都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的...原创 2019-08-20 11:06:28 · 199 阅读 · 0 评论 -
超长非负数求和
import java.util.Arrays;import java.util.Scanner;public class Demo1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s1 = sc.nextLine(); String ...原创 2019-08-09 16:27:47 · 239 阅读 · 0 评论 -
币值为25分、10分、5分和1分的硬币,计算n分有几种表示方法
有数量不限的硬币,币值为25分、10分、5分和1分,请编写代码计算n分有几种表示法。给定一个intn,请返回n分有几种表示法。import java.util.Arrays;/* * 我们用数组coins[i]={1,5,10,25}表示各种币值,此时可以维护一张二维表ways[i][j], * 其中横坐标表示前i种表示币值,j表示硬币的总值, * 则ways[i][...原创 2019-08-09 13:13:39 · 1185 阅读 · 0 评论 -
Base64编码原理解析与Java实现
个人理解总结,得到以下3点:将原始数据以先后顺序每3个字节分成一组*。在每一组中,把3段8bit的字节(3*8=24)按高低位顺序分为每段6bit的4段(4*6=24),将每段转为十进制得到0~63之间的数,以之为码值/索引在Base64编码表中对照/映射得到4个密文。重复以上操作。密文每76个字符数据后加一个换行符*。若原始数据字节长度除3余1,则在输出数据末尾加2个“=”;若原始...原创 2019-08-26 21:41:57 · 202 阅读 · 0 评论