自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 动态规划 + 示例

动态规划(英语:Dynamic programming,简称 DP),通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。一般这些子问题很相似,可以通过函数关系式递推出来这个相似的子问题的结构。然后动态规划就致力于使每个子问题只被解决一次,减少重复计算,比如斐波那契数列就可以看做入门级的经典动态规划问题。所以动态规划的核心思想就是拆分出重复子问题,记忆答案,减少重复计算。动态规划的本质是一个状态机,从初始状态开始进行有向无环的跳转,最终求得最终解。程序展示(自顶向下记忆话搜索)

2022-08-25 15:11:35 109 1

原创 用二分查找返回数组中大于等于X的最小下标

与传统二分查找不同的地方在于,我们用nums[mid] >= target做判断条件,只要是大于等于target的数我们都用ans来暂时保存这个下标,这样我们就可以不断压缩右边指针(因为右边界的判断条件为>=,所以数据从右向左依次进入判断,ans暂存最后一个>=的下标,程序结束时返回的也就是最小下标)

2022-08-24 20:40:36 200

原创 用异或交换两数值

将ab^与b再进行半加的时候ab ^各个二进制位上的值会被b的各个二进制位上的值再次改变(反正不进位,负负得正了呗)。异或又被称作半加运算,运算规则为不进位的二进制加法。首先我们知道 a ^ b ^ b == a;那么我们先将a赋值为a和b异或的值,(1)之后我们有b的值,和ab异或的值。然后我们用新拿到的ab异或的值与b异或,得到原来a的值,再用ab异或的值与a异或得到原来b的值。同理,将ab^与a半加又可以得到b。(a与b异或的结果:ab^

2022-08-23 20:20:19 994 2

原创 Java中方法执行过程中的值传递和引用传递

如果想理解Java里面方法执行过程中对象引用的过程,需要了解JVM的执行过程(新方法执行会有一个新的栈帧压入栈里,栈帧里会包含方法信息)当一个新的方法压栈后,方法获取到了参数列表传来的对象引用,没有获得对象本体(在堆里)1–这时如果在新方法里通过对象引用修改了对象本身(如修改对象的属性值),那么在这个新方法弹栈后对象引用会指向方法压栈前的状态(即还是会指向对象本体),对象本体会被修改2–这时如果在新方法里只是修改了对象引用的指向,那么在这个新方法弹栈后对象引用会指向方法压栈前的状态(即还是会指向对象

2022-01-14 15:58:56 129

空空如也

空空如也

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

TA关注的人

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