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

手机网站有哪些类型网站是什么字体

手机网站有哪些类型,网站是什么字体,网站开发商换了,网站正在建设 h5模板描述给出一个非负整数数组,你最初定位在数组的第一个位置。数组中的每个元素代表你在那个位置可以跳跃的最大长度。判断你是否能到达数组的最后一个位置样例 1:输入:A [2,3,1,1,4]输出:true解释:0 -> 1 -> 4&am…

描述

给出一个非负整数数组,你最初定位在数组的第一个位置。

数组中的每个元素代表你在那个位置可以跳跃的最大长度。

判断你是否能到达数组的最后一个位置

样例 1:

输入:

A = [2,3,1,1,4]

输出:

true

解释:

0 -> 1 -> 4(这里的数字为下标)是一种合理的方案。

样例 2:

输入:

A = [3,2,1,0,4]

输出:

false

解释:

不存在任何方案能够到达终点。

挑战

这个问题有两个方法,一个是贪心和 动态规划

贪心方法时间复杂度为O(N)。

动态规划方法的时间复杂度为为O(n2)。

思路:题目明确说使用贪心和动态规划

先来看动态规划 

本质上动态规划本质上就是“把数学里的递推(递推式/递归关系)工程化并高效求解”

动态规划的四要素

1.状态dp[i]//注意 这里题目说的是否能到达数组的最后一个位置 没有说从哪个点至哪个点是否可以到达 所以状态就是dp[i] 无需二维数组

2.状态转移方程dp[i]=dp[j]&&a[j]>=(i-j)  其中 i>=j 

3.状态初始条件 dp[0]=true

4.边界条件/遍历顺序/答案    i 从小到大,j 在 [0, i-1]  dp[n-1];

代码如下:

public class Solution {

    /**

     * @param a: A list of integers

     * @return: A boolean

     */

    public boolean canJump(int[] a) {

        // write your code here

       // 状态 dp[i]

        //状态转移dp[i]=dp[i-1]&&(a[j]>=(j-i));//a[j]的长度指的是跳跃的最大长度i>=1        i代表其实位置 j代表终点的位置

       // 初始化 dp[0]=true;

        //边界条件i>=0 && i<a.length

        if (a == null || a.length == 0)

        {

            return false;

        }

        int n = a.length;

        boolean[] dp=new boolean[n];

        dp[0]=true;

        for(int i=1;i<n;i++)

        {

            for(int j=0;j<i;j++)

            {

               

                if(dp[j]&&(a[j]>=(i-j)))  

                {

                dp[i]=true;

                break;

                }

               

            }

        }

        return dp[n-1];

    }

}

动态规划的时间复杂度为O(n²)

如果使用贪心法

极值 + 不变量:每到一个可达位置 i,就把“最远可达”推到 i+a[i] 的极值;不变量“最远可达下标”单调不减。

单调结构:可达区间像一段区间覆盖不断右扩,满足贪心所需的单调性

尤其是遇到单调+极值的组合 易想到贪心法的实现

代码如下:

public class Solution {

    /**

     * @param a: A list of integers

     * @return: A boolean

     */

     //贪心法

    public boolean canJump(int[] a) {

        int n=a.length;

        if(a==null||a.length==0) //边界条件

        {

            return false;

        }

         int farthest = 0;

        for(int i=0;i<n;i++)

        {

            if (i > farthest) return false;          // 连 i 都到不了,后面更到不了

            farthest = Math.max(farthest, i + a[i]); // 扩展最远可达 关键是当前的下标位置+可跳的步数i + a[i] 注意不是累加步数 贪心法的体现 当前最优的局部选择  每步把可达的覆盖区间右端推到当前能达到的最远位置

            if (farthest >= n - 1)

            {

                return true;      // 已覆盖到终点

            }

        }

         return farthest >= n - 1;

    }

}  

贪心法的时间复杂度为O(n)

http://www.dtcms.com/a/485308.html

相关文章:

  • wordpress跳转移动端模板资源专业网站优化排名
  • 织梦 做网站 知乎手机网站制作教程下载
  • 淘特app官方网站下载工业设计公司有哪些
  • 北太平庄做网站公司通过一个站点的建设方案
  • 衡阳城乡建设部网站首页wordpress内页打不开
  • 申请注册网站域名.商城电商网站开发报价
  • 地方网站不让做吗策划公司收费
  • 网站导航排版布局网站建设内部下单流程图
  • 263企业邮箱修改密码国内最好的seo培训
  • 喀喇沁旗网站建设公司网站建设服务 杭州
  • 学习网站建设多少钱芬兰网站后缀
  • 广东 网站建设 公司排名网站域名费用
  • 许昌做网站的公司帮网站做代理
  • 青岛昌隆文具网站是哪家公司做的常见的网络营销方法有哪些?
  • 网站设计与建设报告网站界面优化
  • 电子购物网站建设视频国外优秀网页设计欣赏
  • 网站每天点击量多少好整站下载器 安卓版
  • 网站模板的好处网站开发建设合同书
  • 交互设计作品集网站东光县建设局网站
  • 网站开发常用jquery插件邯郸网站设计费用
  • 有哪些做电子商务的网站linux wordpress 权限设置
  • 滁州网站建设哪个好点抢购网站源码
  • 云速网站建设公司网站 宕机 优化
  • 看网站的访问量深圳市深企在线技术开发有限公司
  • 大气的个人网站一个网站怎么留住用户
  • 网站改版页面不收录空间设计说明怎么写
  • 寮步做网站公司建筑工程网络图计算方法
  • 设计一个企业网站报价自己做qq代刷网站要钱吗
  • vi设计公司联系方式seo计费怎么刷关键词的
  • 怎么做电影流量网站吗网上营销的好处