- 博客(18)
- 收藏
- 关注
原创 396. 旋转函数
1. 找规律题,像这种题一上来给人的感觉就是n次的变化是有规律的。不妨我们就一步一步的看规律在哪里。3. 时间复杂度O(n), 空间复杂度O(1)。2. 由上图可以得出公式如下:其中。和F(0)是需要我们去做初始化的。
2024-10-14 21:37:27
245
原创 73. 矩阵置零
使用row和col(Set集合)记录为0的行列,然后逐一更新matrixs即可。在原表上做修改,需要记录哪一行那一列是0,所以不是发现为0后原地修改。时间复杂度O(nm),空间复杂度O(n + m)
2024-10-14 20:16:31
381
1
原创 SpringBoot2自动装配与原理
通过自定义Bean,将Bean注入到Spring组件中。自定义注册后,容器中组件名称默认以方法名为组件ID,所以可以在容器中看到已经注册的getTom组件通过getBeanDefinitionNames方法打印所有组件,可以看到已经存在getTom容器默认单例对象(singleton)@Bean配置类自身也是组件,通过proxyBeanMethods来确定当前配置类是否被容器代理。通过获取配置类组件,来对组件的调用。
2024-06-14 19:38:01
851
原创 Spring-IOC-DI
当我们需要创建一个非常复杂的对象时,例如MyBatis中的SqlSession对象。我们得到SqlSession对象前需要做一系列的事情的时候,就可以使用Spring的工厂模式来创建。定义想要获取的对象,例JavaBean创建JavaBeanFactoryBean用于获取JavaBean实例,需要实现FactoryBean重写 getObject getObjectType 以及 isSingleton方法,获取对象、获取对象类型、是否为单例创建。
2024-04-15 18:15:10
2012
1
原创 Maven基础知识
父工程用于规定待使用的依赖信息,用于子工程引入,当子工程中需要使用依赖时只需要写GA即可V在父工程中已经声明。父工程中的依赖只是声明并不会引入依赖,只有子工程中引入时才会引入到子工程的依赖中。: 当工程中需要依赖A,只需要引入依赖A即可,但是依赖A有依赖了依赖B,依赖B又依赖了依赖C……遇到依赖冲突则停止依赖传递 ,例如A->B->C->A,则在依赖C时终止依赖传递,从而避免依赖冲突和循环依赖。 后: 利用maven可以简化依赖导入,标签化导入,maven会自动引入需要的依赖以及依赖的依赖。
2024-04-14 19:15:53
2013
1
原创 Java DFS深搜-迷宫问题
王叫兽组织了一场迷宫游戏,王叫兽也不知道迷宫具体是怎样的,于是花买到一个无人机, 无人机可以将迷宫图片转成数字形式的,其中,现在有T名玩家参赛,王叫兽为每一个参赛人员分配了一个N*M大小的迷宫,参赛玩家可以选择、四个方向进行行走。现在王叫兽请你帮忙总结这次所有玩家比赛的结果,可以顺利到达终点输出YES否则输出NO。
2024-04-06 12:45:13
299
1
原创 点到点最大方案-动态规划
子问题:有哪些可以走到(x, y)格子,明显第一行和第一列只可以总一个方向行走,所以标记为1;当走到(1,1)时,看一看出可以从左边和上边走到(1,1),那上边的格子从起点走有1种方案,从左边走也有1种方案,那么到当前格子的方案数就是能够到达当前格子的方案数相加,递推公式。给定一个M*N的地图,只可以进行向下或者向右的操作,请计算出从(0,0)-(m-1,n-1)有多少种走法?定义dp数组,这里说明到点(x,y),所以dp需要为一个二维数组,用于记录当前格子的最大方案。题目为一个动态规划问题。
2024-03-28 12:13:39
789
原创 LeetCode 410分割数组的最大值-二分+贪心
给定一个非负整数数组nums和一个整数k,你需要将这个数组分成k个非空的连续子数组。设计一个算法使得这k个子数组各自和的最大值最小。思路: 题目是一道二分题,给出一个数组nums和k(表示nums要分割的子序列个数)。要求在nums中划分k个子序列,每个子序列的求和值在各自序列和中最大,且在所有情况中该序列的和最小。是画匠问题的相似题,nums数组中每个元素表示当前需要画多久,k表示有多少个画匠,画匠只可以选择连续的序列进行画作,给出最短时间将nums画完。
2024-03-27 08:00:00
546
原创 LeetCode 875爱吃香蕉的珂珂
珂珂喜欢吃香蕉。这里有n堆香蕉,第i堆中有piles[i]根香蕉。警卫已经离开了,将在h小时后回来。珂珂可以决定她吃香蕉的速度k(单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉k根。如果这堆香蕉少于k根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在h小时内吃掉所有香蕉的最小速度kk为整数)。
2024-03-26 09:07:52
456
1
原创 最少覆盖问题-贪心算法
问题:现有n个地区出现了埃博拉病毒,现在需要设立若干个防疫点去解决这些地区的病毒,第三人民医院院长当机立断向下属发布任务,请你们选择k个地区设立防疫点。任务发布完毕后各位请战的医生们都响应了号召,但是院长发现他们之间有好多的地区都是重复出现的,院长想设立的防疫点越少越好且可以完全覆盖出现埃博拉病毒的地区,请你帮助院长找出这样的方案?
2024-03-22 15:24:19
336
1
原创 Java-Prim最小生成树算法
Prim算法的基本思想是分治策略,即将一个大的问题拆分成几个小问题来解决。在寻找最小生成树的过程中,Prim算法会维护两个集合:一个是已经加入生成树的顶点集合(设为U),另一个是还未加入生成树的顶点集合(设为V-U算法开始时,任选一个顶点加入U,然后不断从V-U中选择与U中顶点相连且权重最小的边,将该边的另一个顶点加入U,直到U包含所有顶点为止。
2024-03-21 18:01:22
705
1
原创 Java带权图的最短路径算法-Dijkstra
Dijkstra算法的核心思想是通过逐步逼近的方式,找出从起点到图中其他所有节点的最短路径。
2024-03-21 12:06:50
2006
1
原创 Java 无权图的最短路路径算法
同时,创建一个数组(shortPath)来记录,其中shortPath[x][0]代表是否已经被访问、shortPath[x][1]代表到目标定点的最短距离、shortPath[x][2]代表当前第x个顶点的邻节点,所有都初始化为0。在无权图中,由于所有边的权重被视为一致,使得无权图的最短路径问题在算法处理上相对简化,然而,这并不意味着其缺乏实际应用的意义,实际上,它在多个领域中仍具有不可忽视的实用价值。无权图的最短路径算法:某一点到任意一点的最短路径。: 将shortPath数组返回。
2024-03-20 10:46:07
739
1
原创 01背包问题 (动态规划)
商品架上放置这多种不同的物品,且每个物品都有其对应的重量和价格,现在需要把这些商品装入背包中,请问放置哪些物品可以满足背包中物品的最大价值?当可以放入当前物品时就需要和上一次的最优解和当前物品价值和剩余重量的最优价值解的和做MAX求解,递推公式。观察上述表格,当前物品放不进去背包时就取得上次背包的最优解,递推公式。可以使用动态规划进行解决,从小问题往大问题递推。**注:**i代表物品数量 j代表背包容量。用于存放背包中在每个容量下可以存放那些物品。,右下表格中的价值就是最终解。
2024-03-15 16:36:34
295
1
原创 PTA - 插松枝(模拟题)
此时将手中的松枝放到成品篮里,推送器上取到的松针压回推送器,开始下一根松枝的制作。此时将手中的松枝放到成品篮里,开始下一根松枝的制作。现在给定推送器上顺序传过来的 N 片松针的大小,以及小盒子和松枝的容量,请你编写程序自动列出每根成品松枝的信息。人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上,做成大大小小的松枝。随后一行给出 N 个不超过 100 的正整数,为推送器上顺序推出的松针片的大小。(3)手中的松枝干上已经插满了松针,将之放到成品篮里,开始下一根松枝的制作。
2024-03-14 20:53:42
949
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人