题集
宽宽的乌托邦
这个作者很懒,什么都没留下…
展开
-
给定数字生成括号组合
n=3 3个左括号+3个右括号合法:((())) (())() (()())非法:)()()(要求: 找出所有合法的括号情况。原创 2023-06-20 23:31:07 · 183 阅读 · 0 评论 -
递归改动态规划:正则匹配
题目描述请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配递归解法,原因都在注释里: public class Solution { public boolean match(char[] str, char[] pattern) { ret原创 2021-02-27 23:56:55 · 114 阅读 · 0 评论 -
飞机选座 --- 一道可用动态规划解决的概率问题
题目该题是中文网站的 LeetCode 的 1227题,题目如下:思路自己想的情况还是有欠缺的地方,最后是看题解后总结出来的,记录一下。思路1:假设第一位没票的客人先上飞机,整体分3种情况:1.第一位客人选的是他本来应该座的位置,其他人都有票,对号入座即可。第 n 位乘客坐在自己的座位上的概率是: 1 / n * 1。2.第一位客人选的是第n位客人的位置,这样第n位客人无论无何都座不到自己本来的位置。第 n 位乘客坐在自己的座位上的概率是: 1 / n * 0。3 第原创 2020-06-01 21:00:31 · 564 阅读 · 3 评论 -
最低票价-动态规划题
LeetCode 983题题目:最低票价在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为 costs[0] 美元;一张为期七天的通行证售价为 costs[1] 美元;一张为期三十天的通行证售价为 costs[2] 美元。通行证允许数天无限制的旅行。 例如,如果我们在第 2 天获得一张为期 7 天的通行证,那么我们可以原创 2020-05-30 09:34:59 · 274 阅读 · 0 评论 -
关于位运算的一些简单技巧
关于位运算的一些简单技巧位运算与、或、非、异或、左移右移:无符号右移: >>> 高位补0有符号右移: >>逻辑右移: 高位补0算术右移: 高位补符号位。在 Java 中,明确规定了:逻辑右移:>>> 补0算术右移:>> 补符号位因为可以代替除法运算,算术右移一位相当于 除以 2, 高位补符号位就还是负数,补0就是正数了。。(也可以对对比着: 左移右移一位,在十进制中,也会相应的乘10 或 除10原创 2020-05-19 09:41:39 · 357 阅读 · 0 评论 -
约瑟夫环问题的2种解法
不废话,直接上题目:有2种解法(这里把他抽象出来,有n个人,报数到m就去除在外)一种是模拟。 可用数组模拟,也可用循环链表模拟。还有一种是 找规律。找规律先来看找规律的吧,模拟的后面直接贴代码了。先来想一个问题,报数到m的人就去除,一直重复下去,这个算不算是一种规律????。。。如果有规律的话,我们通过和题目有关的 n、m2个数据,进行一些运算,就可以得出最后留下来的是哪个编号了...原创 2020-05-02 15:05:14 · 289 阅读 · 0 评论 -
求最大公约数
导读求最大公约数,最简单粗暴方法是列出他们的约数,去找共同的那些,选最大的就行了。。。当然,还有其他的,就是欧几里得算法,或者叫做辗转相除法,也可以来求最大公约数,但是这个的前提条件是2个正整数。所以这篇这是些辗转相除法的代码实现及非常简单的一些证明了。题目思路:就是证明辗转相除法为什么是对的。。。首先用文字描述一下辗转相除法的内容:有2个正整数a,b。 他们的最大公约数,也...原创 2019-11-09 11:36:54 · 251 阅读 · 0 评论 -
有关随机数的一些问题
导读这里随机数问题介绍3个题目,可以算是一大类的吧。话不多说,直接看题:第一题:基础题目思路:用随机数1——5, 来产生随机数1——7。就要想办法通过已有的条件1——5,来凑!首先要有个0出来,方便后面计算。rand1To5() - 1 : 可产生:0,1,2,3,4这些范围比7小,还要连续的数字都要有,(4后面是5,所以乘以5)那么rand1To5() * 5 可产生...原创 2019-11-08 13:56:12 · 324 阅读 · 0 评论 -
软件工程课程部分习题
导读软件工程导论。 张海潘、牟永敏 著第一章 课后部分习题习题一:1.什么是软件危机?他有哪些典型表现?为什么会出现软件危机?软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。主要包含2方面问题:如何开发软件;如何维护数量不断膨胀的已有软件。典型表现:对软件开发成本和进度的估计常常不准确。用户对“已完成的”软件系统不满意的现象经常发生。软件产品的...原创 2019-03-17 19:21:45 · 1347 阅读 · 0 评论 -
滑动窗口的最值更新结构
导读在看数组的时候,有个技巧是用双指针来构造滑动窗口,可是这个并没有记录着之间的最大值或者最小值。 事实上这样记录滑动窗口的最值有时候还挺好用的。这里就是简单的介绍这么一种用法,用几道例题来说明下。顺便也是检验自己是不是熟练掌握了。结构介绍滑动窗口的最值更新结构其实就是一个双端队列,即可以从头部进头部出,也可以从尾部进尾部出。在遍历数组的时候,生成滑动窗口的过程中,这个双端队列的内容也就相应...原创 2019-03-19 21:37:49 · 294 阅读 · 0 评论 -
有关暴力递归和动态规划的初次尝试
前言:之前只是听说过暴力递归和动态规划这些个名词。写这篇文章的目的只是想总结总结自己的认识。暴力递归其实也不用叫什么暴力递归,感觉加上暴力这个词就有一种不正经的感觉…就是一个简单的递归尝试方法。 出现了一个问题,不知道是怎么解决的,但我们知道可以怎么一步一步进行尝试,在这一步步的尝试过程就可以把问题解决了。相信大家第一次接触递归的方法都是从 斐波那契的那些兔子开始的~最具典型性的例子应...原创 2019-01-29 23:17:28 · 182 阅读 · 0 评论 -
有关贪心算法的几道题
前言之前也是看过一遍,但那时候都是纠结于比较器那里。 现在就是想从头梳理一下。主要就是讲几道题拼接字符串问题哈夫曼编码问题IPO问题项目宣讲问题贪心算法也叫贪婪算法(greedy algorithm)。顾名思义,就是每一步都要做到最好,这就是很贪婪了…主要就是在贪心策略上强大。但遇到一个问题时,可能会想出、会脑补出很多策略来进行实现,至于那个是对的,就不好说了。在贪心...原创 2019-02-07 12:26:09 · 537 阅读 · 0 评论 -
数组排序之后相邻数的最大差值
前言 :想写些东西记录自己所学的收获。先上题目 :思路:比较器最简单的按排序之后再逐个遍历找出最大差值,但这显然不符合题目要求。 不过这个思路可以当成比较器来用,来检测之后写的代码是否是否要求。public static int comparator(int[] nums) { if(nums == null || nums.length < 2) { ...原创 2019-01-14 14:42:19 · 782 阅读 · 0 评论 -
Fibonacci 取余问题
前言记蓝桥入门训练第一题… 很简单的还折腾了2、3天。最后是找的学长来帮忙。感谢!做题过程总体分为3个阶段。先上题目:问题描述:Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余...原创 2018-11-30 15:26:15 · 286 阅读 · 0 评论