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

洛阳建站推广公司网址导航推广

洛阳建站推广公司,网址导航推广,有源代码怎么制作网站,建筑工程网课哪个好文章目录 1. 山脉数组的峰顶索引题干#xff1a;算法原理#xff1a;代码#xff1a; 2. 寻找峰值题干#xff1a;算法原理#xff1a;1. 暴力解法2. 二分查找 代码#xff1a; 3. 下降路径最小和题干#xff1a;算法原理#xff1a;1. 状态表示2.状态转移方程3. 初始化… 文章目录 1. 山脉数组的峰顶索引题干算法原理代码 2. 寻找峰值题干算法原理1. 暴力解法2. 二分查找 代码 3. 下降路径最小和题干算法原理1. 状态表示2.状态转移方程3. 初始化4. 填表顺序5. 返回值 代码 1. 山脉数组的峰顶索引 原题链接 题干 山脉数组 找峰顶 返回索引 算法原理 由于这个数组具有“二段性”使用二分查找 目标是左边的左边小于右边 目标值右边的左边大于右边 峰顶数据特点 arr[i] arr[i - 1] arr[i] arr[i 1]峰顶左边的数据特点 arr[i] arr[i - 1] arr[i] arr[i 1] 也就是呈现上升趋势峰顶右边数据的特点 arr[i] arr[i - 1] arr[i] arr[i 1] 也就是呈现下降趋势 如果 mid 置呈现上升趋势说明我们接下来要在 [mid 1, right] 区间继续搜索如果 mid 位置呈现下降趋势说明我们接下来要在 [left, mid - 1] 区间搜索如果 mid 位置就是⼭峰直接返回结果 代码 class Solution {public int peakIndexInMountainArray(int[] arr) {int left 1;int right arr.length - 2;while(left right) {int mid left (right - left 1) / 2;if(arr[mid] arr[mid - 1]) {left mid;}else {right mid - 1;}}return left;} }2. 寻找峰值 原题链接 题干 峰值元素严格大于左右相邻的元素 算法原理 首先这道题有三种情况 1. 暴力解法 从第一个位置开始一直向后走 分情况讨论 2. 二分查找 任取⼀个点 i 与下⼀个点 i 1 会有如下两种情况 arr[i] arr[i 1] 此时「左侧区域」⼀定会存在⼭峰因为最左侧是负无穷那么我们可以去左侧去寻找结果arr[i] arr[i 1] 此时「右侧区域」⼀定会存在⼭峰因为最右侧是负无穷那么我们可以去右侧去寻找结果 接下来按照模版写就可以 代码 class Solution {public int findPeakElement(int[] nums) {int left 0;int right nums.length - 1;while(left right) {int mid left (right - left) / 2;if(nums[mid] nums[mid 1]) {left mid 1;}else {right mid;}}return left;} }3. 下降路径最小和 原题链接 题干 有一个 n * n 的整形数组 找到下降路径的最小和 比如示例一就有两种情况 1 可以向下、向左下、向右下 算法原理 1. 状态表示 dp[i][j] 表示到达 [i, j] 位置时所有下降路径中的最小和 2.状态转移方程 对于普遍位置 [i, j] 根据题意得到达 [i, j] 位置可能有三种情况 从正上方 [i - 1, j] 位置转移到 [i, j] 位置从左上方 [i - 1, j - 1] 位置转移到 [i, j] 位置从右上方 [i - 1, j 1] 位置转移到 [i, j] 位置 我们要的是三种情况下的「最小值」然后再加上矩阵在 [i, j] 位置的值 dp[i][j] min(dp[i - 1][j], min(dp[i - 1][j - 1], dp[i - 1][j 1])) matrix[i][j] 3. 初始化 可以在最前⾯加上⼀个「辅助结点」帮助我们初始化 辅助结点里面的值要「保证后续填表是正确的」「下标的映射关系」 在本题中需要「加上⼀行」并且「加上两列」 所有的位置都初始化为无穷大然后将第⼀行初始化为 0 即可 4. 填表顺序 从上往下 5. 返回值 返回「dp表中最后⼀行的最小值」 代码 class Solution {public int minFallingPathSum(int[][] matrix) {int n matrix.length;int[][] dp new int[n 1][n 2];for(int i 1; i n; i) {dp[i][0] dp[i][n 1] Integer.MAX_VALUE;}for(int i 1; i n; i) {for(int j 1; j n; j) {dp[i][j] Math.min(dp[i-1][j], Math.min(dp[i-1][j-1],dp[i-1][j1])) matrix[i-1][j-1];}}int ret Integer.MAX_VALUE;;for(int j 1; j n; j) {ret Math.min(ret, dp[n][j]);}return ret;} }
http://www.sadfv.cn/news/34999/

相关文章:

  • 聊城手机网站公司西安易扬众和网站建设
  • 百度 网站 说明广州番禺做网站
  • 在手机上建网站公司设计一个网站需要多久
  • 开源做网站需要申请账号吗宁波哪家公司做网站好
  • 商城网站开发周期wordpress换了固定链接404
  • 龙岗中心城有学网站建设北京公司注册最新政策
  • 网站开发比较流行的框架美术主题资源网站建设
  • 大型网站制作需要多少钱wordpress最新评论
  • 做网站有没有受骗过360免费建站系统
  • 问答网站怎么做营销wordpress 网店模板
  • 泉州专业网站建设公司哪家好网络搭建项目案例
  • 网站建设代码出现乱码呼和浩特 网站建设
  • 汉庭酒店网站建设方案wordpress模板克隆
  • 重庆市住房和城乡建设厅网站宁波城乡住房建设局网站
  • 国外优秀平面设计网站如何进行网站运营与规划
  • 免费课程网站有哪些南通市城乡和住房建设局网站
  • 网站建设 中企动力wordpress 安装502
  • 佛山外贸网站建设特色做网站是不是要域名费
  • 免费创建音乐网站有没有做任务拿佣金的网站
  • 网站备案后怎么做百度自动搜索关键词软件
  • 寒亭区住房和城乡建设局网站建设网站烧钱
  • 北京网站设计优选刻站长工具之家seo查询
  • 湛江建设网站做球服的网站有哪些
  • php网站源码大全手机商务彩铃制作教程
  • 网站制作的步骤不包括哪些雄安网站建设需要多少钱
  • 做网站怎么接活手机软件开发学校
  • 怎么做二维码进网站景观效果图用什么软件制作
  • 网站建设 小程序wordpress 文章查看次数
  • 浙江网站建设东莞p2p网站开发费用
  • 网站建设哪个平台最好大连网站制作 姚喜运