当前位置: 首页 > wzjs >正文

建个网站的电话号码网站上传工具有什么

建个网站的电话号码,网站上传工具有什么,上海网络公司查询,无锡网站建设198. 打家劫舍 - 力扣(LeetCode) 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入&#…

198. 打家劫舍 - 力扣(LeetCode)

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警

给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

示例 1:输入:[1,2,3,1]
输出:4
解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。
示例 2:输入:[2,7,9,3,1]
输出:12
解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。偷窃到的最高金额 = 2 + 9 + 1 = 12 。提示:1 <= nums.length <= 100
0 <= nums[i] <= 400

算法设计

        我们是如何辨识出这道题需要使用dp算法的呢?

        首先我们需要理解题意,题目讲述的是一个实际问题,我们需要进行一些数学抽象,层层刨析的看到问题的本质。

        首先我们应该看到第一层:题目中虽然只说了相邻房间不能同时打劫,但是我们应该理解为不能打劫相邻房间,但打劫的房间不一定是以间隔1的形式出现的,也可以跳跃多个房间打劫下一个

        接着上面,我们应该分析出第二层:问题虽然简单描述,但是可以想象为被相邻规则直接禁止的房屋我们不能踏入花园,而未被相邻规则禁止的房屋我们可以到花园外看两眼,决定是否进行打劫。

        接下来我们通过目前的状态推测过去的情况,对于到达第i个房屋后的能打到的最大金额dp[i]

        1.当我们目前选择了打i时,之前绝对不可能打过i-1,所以有dp[i] = dp[i-2] + nums[i]

        2.当我们不打i时,无非两种情况,一种:确实打过了i-1,所以不能打i,二种:没打i-1,但是也不计划打i,以上两种情况都可以用dp[i-1]来概括,然而究竟打不打i-1,这个需要根据dp[i-1]的相同方法分析才能得到,也就是递推

        综上所述,为了在每个dp求得最大的金额,我们应该有状态转移方程:

                          dp[i] = fmax(dp[i-2]+nums[i], dp[i-1]) 

        这样我们就分析出它跟爬楼梯问题的一个共通点了,就是,达到i时的状态都可以通过拆解为多种过去状态分支。再把过去状态与dp进行联系,从而求得dp[i]

int rob(int* nums, int numsSize) {int dp[2];int temp;dp[0]=*(nums);if(numsSize==1){return dp[0];}if(numsSize>1){dp[1]=fmax(dp[0],*(nums+1));}if(numsSize>2){for(int i=2; i<numsSize; i++){temp=fmax(dp[0]+*(nums+i),dp[1]);dp[0]=dp[1];dp[1]=temp;}}return dp[1];
}

        比如说如果我打了i的,那么我最近至少也得从dp[i-2]过来吧

        再比如,我不打i,要么是因为我打了i-1所以不能打i,再要么是我不打i-1,只是在它门口鬼鬼祟祟地晃悠了两圈,又来到i,其实我能打i,但是仔细考虑了一下不打i。

        所以从语态角度讲,这道题的状态转移条件划分规则为在一般现在时下是否打i,而不是我是否能打i。所以打劫Ⅰ类问题与爬楼梯的区别在于,爬楼梯中状态转移方程的dp [i-1] 和 dp[i-2]爬到dp[i]讲的是一个can的问题,描述了我上一次状态到本次状态的能力。而在打劫问题中,我们描述的是一个do的问题,以基本实时的分支为标准进行划分,而通过对对立事件二存一的逻辑求得dp[i]。

        为什么在打劫问题中需要以do的方式去思考呢?在以后我们如何从根本上辨别这两种状态转移方式的应用场景?

        以我看呀,爬楼梯问题的目标解是达成目的途径数量,所以计算过程本质是把所有最简对立事件的个数统计。而打劫问题,是一个结果驱动型问题,要求的是给定过程量的和最大,结果所对应的行为是固定的一种或多种。

        不如我们先换一个问法,在题设条件下,不追求最大获利,总共有多少种打劫方式?

        假设dp_can[i]表示打劫到i总共的方式,

        那么打劫到i有i种大可能性,即上一次打劫的是0,1,...,i-1;

        那么

       dp_can[i] = dp_can[i-2] +...+ dp_can[0]

        很显然dpcan[0]=1,因为打1只有小区大门开始一种方法;

        dpcan[1]=1;

        dpcan[2] = dpcan[0] = 1;

        dpcan[3] = dpcan[0] + dpcan[1] = 2;

        ...

        因此这更像是斐波那契数列的升级版,当前途径状态量是除前一元素先前途径状态量的和;

        所以,dp最优问题是实质上是在dp决策问题上施加额外条件形成的,因为决策的形成带动形成了解的结构,所以最优问题的解也是可以进行状态转移的。

        
                                

        

        

http://www.dtcms.com/wzjs/566655.html

相关文章:

  • 东营做营销型网站天津网站搭建
  • 萍乡公司做网站群晖怎么做网站
  • 建立网站分为几阶段建模网
  • 求网站开发客户影视logo设计制作器
  • 做菠菜网站代理犯法吗做淘宝客网站好搭建吗?
  • 要维护公司的网站该怎么做销售网站建设公司
  • 最好的网站模板下载网站模板网字库
  • 邢台市建设局官方网站什么网站可以请人做软件下载
  • 航运网站建设计划书使wordpress没有手机页面
  • 广西营销型网站公司lumen wordpress
  • 网络营销就是建立企业网站铜陵县住房和城乡建设局网站
  • 做网站的分辨率多少网站页面策划
  • 教学平台网站开发托管经营
  • 号码网站建设资阳市住房和城乡建设局网站
  • dede网站经常被挂马 怎么办wordpress屏蔽蜘蛛爬虫
  • 网站推广的技能推广赚钱一个2元
  • 注册1000万公司每年费用多少百度seo咋做
  • 书店网站策划书管理咨询公司项目运作流程图
  • 纺织品公司网站建设wordpress 固定侧边栏
  • 网站 标题 关键词 描述德州最新通知
  • 做行程的网站 哪个最好刚刚沈阳发布重要通知
  • 大学做html个人网站素材网站不推广如何排名
  • 网站开发的形式有看门户是什么意思
  • 合肥建站免费模板网站网站建设培训
  • 夺宝网站是怎么做推广的在网站上做教育直播平台多少钱
  • 建设中网站如何上传图片工业电商做网站怎么样
  • 建企业网站怎么收费网站建设需要注意事项
  • 用什么网站能直接做dj深圳建设招标网站首页
  • 网站设计首页河北建设工程有限公司
  • 民非单位年检那个网站做wordpress如何上传案例