- 博客(58)
- 收藏
- 关注
原创 C++(动态规划之不同路径2)
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格的左上角 (起始点在下图中标记为 “Start” )。1. 向右 -> 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右 -> 向右。3x3 网格的正中间有一个障碍物。网格中的障碍物和空位置分别用。从左上角到右下角一共有。
2024-05-10 15:45:00
428
原创 动态规划(路径)
一个机器人位于一个 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右3. 向下 -> 向右 ->
2024-05-09 16:30:00
374
原创 Java(多线程)
篮子,对哪个篮子消费,调用篮子自身的方法把产品拿走(消费)篮子,对哪个篮子生产,调用篮子自身的方法把产品放进去。产品放入集合和产品从集合中拿走。篮子自身的最大容量;
2024-05-08 16:15:00
241
原创 C++(长度最小子数组)
与暴力解法不同的地方是:开始位置的变化在for循环里面就可以弄,为什么要套while?是因为可能开始的那个数减下来不够,所以要用while;如果不存在符合条件的子数组,返回。是该条件下的长度最小的子数组。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。
2024-05-05 21:14:15
296
原创 算法(二分查找C++
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。木头长度的单位是 cm,原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。,要求切割成等长的 6 段,很明显能切割出来的小段木头长度最长为。如果数组中不存在目标值 target,返回 [-1, -1]。当然,我们希望得到的小段木头越长越好,请求出。,分别表示原木的数量,需要得到的小段的数量。根原木,现在想把这些木头切割成。的小段木头(木头有可能有剩余)。i,表示一根原木的长度。
2024-04-30 10:30:00
315
原创 Java(感想
密码异常:处理密码的长度异常和新、老密码不匹配异常,三次输入密码不一致异常身份证号码异常://准备用正则表达式处理电话号码异常:电话号码一定为11位,处理电话号码的长度异常用户名异常:长度为2~18,处理用户的长度异常之后补充......
2024-04-28 21:22:35
238
1
原创 Java(今日总结
在Java中都是非常重要的集合类型,但它们各自具有不同的数据结构和操作方式,适用于不同的场景和需求。选择使用哪种集合类型取决于你的具体需求和数据结构的特点。今天测试了一下set和map。
2024-04-27 22:38:01
251
原创 C++动态规划感悟(使用最小花费爬楼梯
给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。示例 1:输入:cost = [10,15,20]输出:15解释:你将从下标为 1 的台阶开始。- 支付 15 ,向上爬两个台阶,到达楼梯顶部。总花费为 15。
2024-04-25 20:05:44
422
原创 算法(小理解
在上述两种写法中,第一种要比第二种好得多,虽然这两个试子在数学角度上来说划出来的结果是一样的,那为什么第一种写法比第二种写法好?当left是一个很大的数,right也是一个很大的数的时候,left+right很有可能会超出int型能存下的最大值导致整数溢出的情况,而第一种写法很显然。
2024-04-22 00:10:53
111
原创 Java(IO序列化
在完成所有的读取或写入操作后,重要的是要关闭流。这可以确保所有的数据都被正确地刷新到其目标位置(例如,从缓冲区写入到文件),并释放系统资源。在Java中,你可以使用。首先要明确你的数据是从哪里来的,或者是你要将数据写到哪里。例如,你可能要读取一个文件、从网络接收数据,或者将数据写入到数据库或文件中。为了读取或写入数据,你需要打开相应的流。例如,如果你要读取一个文件,你会使用。如果你是从流中读取数据,那么你会使用如。如果你要写入数据到文件,你会使用。如果你是向流中写入数据,那么你会使用如。
2024-04-20 17:08:09
329
原创 今天碰到的一点小问题(网上搜了一下理解了一下
是一个关键字,主要用于声明一个块级作用域的局部变量。它是在 ECMAScript 2015(也称为 ES6)中引入的,以替代。声明的变量不会“提升”(hoisting)到它们所在的作用域的顶部。声明之前的区域,变量处于 TDZ 中,尝试访问它会抛出一个错误。一旦离开该代码块,变量就不再可用。声明的变量只在其声明的代码块(例如,:在同一个作用域内,不能用。重复声明同一个变量。
2024-04-17 23:59:09
269
原创 Java多线程消费者生产者(简单理解)
解释:我一直以为执行Desk.lock.notifyAll();时就会释放锁但其实不是的,notifyAll和notifywait是有很大的区别的,notifyAll执行后并不会立马释放锁他是要等锁的语句块执行完以后才会释放锁,notifyAll只是唤醒了同一个锁的在等待的线程告诉他准被抢了,但还没有释放锁还进不去;还有一点就是这个代码这么写的好处是,当我的吃货线程执行一次执行完后,如果再一次抢到了根据代码他就会等待并释放锁拿这一次没有线程和厨师线程抢了就一定时厨师线程抢到了cpu行使权。
2024-04-16 20:21:14
145
原创 Java多线程(一些常用方法
1.休眠(刚学感觉可以用在我之前的ATM系统里面做那个输错密码之后要几分钟再重输那里)但是运行的时候发现休眠的时候我还能不断输入我想输入什么就输入什么(暂时不知道怎么处理)3.利用Callable接口和Future接口;直接继承Thread类,重写run方法。今天学了一点多线程,感觉有点乱乱的。2.实现Runnable接口;一.有三种方法可以实现多线程。1.继承Thread类;
2024-04-15 21:02:20
198
原创 Java(求连续最大子数组问题
一开始一直没想明白,之后不断画图搞明白,一定要注意连续!例题:求数组{1,4,-5,9,8,3,-6}连续子数组的最大和。答案:子数组为{9,8,3}时输出20为这个的连续子数组的最大和。这里面最应该好好解释的就是那个for循环。
2024-04-13 18:16:43
222
原创 Java(今日总结+ATM补充(ATM还是没有弄完
这个地方,因为外面有一个while循环,每一次都是重新new了一个对象出来!应该要是同一个method才对,因为我在method里面new了账户对象,method不一样账户也就不一样!我找了好久终于是发现了。再就是一个很重要的方法包,其实我感觉我的方法包整理的还行都写在一块了,但是我真的感觉if方法太多了,还有那个while循环,看我到后面学着学着能不能用什么东西替代。今天刚学自定义异常感觉可以在那个输入数字,但是我输入的是字符串那里弄一个自定义异常。就是很简单弄了几个属性和构造方法。
2024-04-11 21:06:08
147
原创 JavaATM(不完整只有一小部分
/目前暂时准备先把所有的东西磊在一起再分开诺列整齐,里面还有登录的一堆功能没有实现,今天先暂时到这里,剩下的明天继续补齐。
2024-04-09 20:58:19
184
原创 【无标题】
简单解释一下这个代码:最开始的两个for循环是为了找出有没有一样的物品有就合并一下,然后把合并多了的做一个处理;之后的for循环是算出每一个物品的价值,然后进行sort排序把最高价值的排在前面然后进行输出就可以了;他要买 n 种物品,第 i 件物品的名字为 sti,有 ai 件,价值为 bi,一格可以放 ci 个。下面 n 行,第 i+1 行三个整数 ai,bi,ci 与一个字符串 sti。里面有一些情况没有考虑到,但大体是这个样子的。一开始他的背包里有 m 件不同的物品(
2024-04-08 20:29:54
283
原创 C++ sort排序之结构体
有 n 个人在一个水龙头前排队接水,假如每个人接水的时间为 Ti,请编程找出这 n 个人排队的一种顺序,使得 n 个人的平均等待时间最小。
2024-04-05 18:10:04
188
原创 C语言简单贪心算法
首先对第一个盒子里面的糖果进行判断,如果第一个盒子里面的糖果都大于了X那肯定要先把第一个盒子里面的糖果吃到X个(因为吃第一个盒子里面只能减少第一个盒子和第二个盒子的组合里面的糖果而尽量少吃第一个盒子里面的,多吃第二个盒子里面的既能减少第一个盒子和第二个盒子的组合又能减少第二个盒子和第三个盒子组合简直是两全其美的事情所以第一个盒子吃到X个就够了多的吃掉第二个盒子的),然后就对每个盒子里面的糖果和组合进行判断,多了就剪掉,所以总的来说只有第一个盒子里的糖果比较特殊。
2024-04-04 20:08:01
446
原创 Java接口和继承简单综合运用
这意味着任何实现该接口的类都必须遵循这个行为规范,即提供接口中所有方法的具体实现。这增加了代码的灵活性和可维护性,因为可以在不修改使用接口的代码的情况下替换实现类。通过定义和使用接口,我们可以更容易地实现这些设计模式,从而提高代码的质量和可维护性。通过定义新的接口或扩展现有接口,我们可以添加新的方法签名,并让实现类根据需要实现这些方法。通过接口,我们可以编写接受任何实现该接口的对象的代码,而无需关心具体的实现类。框架通常定义了一组接口,允许开发者实现这些接口以扩展或定制框架的功能。
2024-04-04 18:36:34
157
原创 Java简单集合运用
在Java中,集合(Collections)是存储多个对象的容器。Java的集合框架(Java Collections Framework)提供了一套丰富的接口和类来实现各种集合结构。
2024-04-03 17:49:40
334
原创 java子父类测试
定义GraduateStudent研究生类继承自CollegeStudent类,拥有新增属性导师,提供构造函数,提供新增属性的get和set函数,main函数中对构造的类进行测试*//*定义Student学生类,拥有学号、姓名、性别属性,提供构造函数,以及相应属性的get set函数,提供函数attendClass(String className)表示上课。:Java规定,如果一个类有继承关系,那么子类的构造方法中的第一行必须是调用父类的构造方法,要么是隐式地调用(即不写。来调用父类的有参构造方法。
2024-04-02 15:30:26
218
原创 JAVA字符串简单运用
函数的原型如下:其中string和c都是用户传入的参数。string的长度在区间 [1,1000][1,1000] 以内;c是一个可能出现在字符串中的字符。函数须返回string中c出现的次数。
2024-03-31 10:00:00
201
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人