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

南宁网站推广经理网站开发平面设计师岗位要求

南宁网站推广经理,网站开发平面设计师岗位要求,网站文字模板,顺企网是什么网站给定一个m行n列的矩阵,从左上角开始每次只能向右或者向下移动,最后到达右下角的位置,路径上的所有数字累加起来作为这条路径的路径和。求所有路径和中最小路径和。 输入格式: 首先输入行数m及列数n,接下来输入m行,每…

给定一个m行n列的矩阵,从左上角开始每次只能向右或者向下移动,最后到达右下角的位置,路径上的所有数字累加起来作为这条路径的路径和。求所有路径和中最小路径和。

输入格式:

首先输入行数m及列数n,接下来输入m行,每行n个数。

输出格式:

输出第一行为最小路径(假定测试数据中的最小路径唯一),第2行为最小路径和。

输入样例1:

4 4
1 3 5 9
8 1 3 4
5 0 6 1
8 8 4 0

输出样例1:

1 3 1 0 6 1 0 
12

问题分析

这是一个典型的路径规划问题,可以使用动态规划来解决。我们需要找到从矩阵左上角到右下角的最小路径和,并记录下这条路径。

在每个点上,我们只能向右或向下移动,因此到达位置 (i, j) 的路径只能来自于位置 (i-1, j)(上方)或位置 (i, j-1)(左方)。我们选择这两个来源中路径和较小的那个,然后加上当前位置的值,即可得到到达 (i, j) 的最小路径和。

解题思路

动态规划解法

我们定义:

  • dp[i][j] 表示从起点 (0, 0) 到达位置 (i, j) 的最小路径和
  • pace[i][j] 用于记录到达位置 (i, j) 的前一步是从哪个方向来的(0表示从上方,1表示从左方)

状态转移方程为:

dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + num[i][j]

边界条件:

  • dp[0][0] = num[0][0]
  • 对于第一行:dp[0][j] = dp[0][j-1] + num[0][j](只能从左侧来)
  • 对于第一列:dp[i][0] = dp[i-1][0] + num[i][0](只能从上方来)

计算完 dp 数组后,dp[m-1][n-1] 就是我们要求的最小路径和。

为了重建最小路径,我们使用 pace 数组记录每一步的选择,然后用栈存储从终点回溯到起点的路径,最后输出即可得到完整路径。

代码实现

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {public static void main(String[] args) throws IOException {BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(bf.readLine());int m = Integer.parseInt(st.nextToken());int n = Integer.parseInt(st.nextToken());int[][] num = new int[m][n];for(int i=0;i<m;i++){st = new StringTokenizer(bf.readLine());for(int j=0;j<n;j++){num[i][j] = Integer.parseInt(st.nextToken());}}int[][] dp = new int[m][n];int[][] pace = new int[m][n];dp[0][0] = num[0][0];//初始化第一行和第一列for(int i=1;i<m;i++){dp[i][0] = num[i][0] + dp[i-1][0];pace[i][0] = 0;}for(int i=1;i<n;i++){dp[0][i] = num[0][i] + dp[0][i-1];pace[0][i] = 1;}//状态转移方程//dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + num[i][j];for(int i=1;i<m;i++){for(int j=1;j<n;j++){if(dp[i-1][j]<dp[i][j-1]){dp[i][j] = dp[i-1][j] + num[i][j];pace[i][j] = 0;}else{dp[i][j] = dp[i][j-1] + num[i][j];pace[i][j] = 1;}}}//逆推路径Stack<Integer> temp = new Stack<>();int i=m-1,j=n-1;while (i>0||j>0){temp.push(num[i][j]);if(pace[i][j]==0) i--;else j--;}temp.push(num[0][0]);while (!temp.isEmpty()){System.out.print(temp.pop()+" ");}System.out.println();System.out.println(dp[m-1][n-1]);}
}

这种方法的时间复杂度为 O(m×n),空间复杂度也为 O(m×n),其中 m 和 n 分别是矩阵的行数和列数。 


文章转载自:

http://EbqlImaF.dxwgn.cn
http://QYUHotia.dxwgn.cn
http://Sv1s7iMB.dxwgn.cn
http://EaYGJRzU.dxwgn.cn
http://zicCT7qs.dxwgn.cn
http://XFj3A9QB.dxwgn.cn
http://1IzMmldG.dxwgn.cn
http://kkspM1y0.dxwgn.cn
http://CxJnEc1w.dxwgn.cn
http://7zG4YljA.dxwgn.cn
http://c0y5p45H.dxwgn.cn
http://J9zS2Tpa.dxwgn.cn
http://eY2OlXcD.dxwgn.cn
http://NCBf0q2I.dxwgn.cn
http://oHOSlhQv.dxwgn.cn
http://0d2fpwFy.dxwgn.cn
http://ZIyamAPp.dxwgn.cn
http://gVpH7DX2.dxwgn.cn
http://TSe9Ybu0.dxwgn.cn
http://uFqUQUHV.dxwgn.cn
http://IVvAd9jE.dxwgn.cn
http://4NHZWwV9.dxwgn.cn
http://CBRcPfFu.dxwgn.cn
http://1WSBQvVV.dxwgn.cn
http://NDsSplwY.dxwgn.cn
http://HZkpPkkQ.dxwgn.cn
http://jqNXntJQ.dxwgn.cn
http://M9NWfWxm.dxwgn.cn
http://YeKWqLLX.dxwgn.cn
http://mVQrgm3N.dxwgn.cn
http://www.dtcms.com/wzjs/609723.html

相关文章:

  • 国外推广网站网站seo平台
  • 长春网站建设模板福田网页设计
  • 中国做网站泰州网站建设 思创
  • 上海专业高端网站建设服务蜜雪冰城网络营销论文
  • 杭州做兼职网站天津 网站设计公司
  • 做网站怎么建立文件夹器材管理网站开发
  • 南宁专业网站建设公司腾讯网络游戏大全列表
  • 做模版网站需要租服务器吗电脑更新后wordpress
  • 免费建站宝盒自学做网站多长时间
  • thinkcmf做网站快不快织梦网站模板源码
  • 网站程序 制作个人做网站要注意什么条件
  • jsp网站开发的环境配置高德地图开发平台
  • 做网站能挣钱不360建筑网个人信息怎么改
  • 做个网站要钱吗wordpress模板网站模板
  • 各大网站搜索引擎入口WordPress自己写主题
  • 中国建设银行 英文网站广告设计与制作工资一般多少
  • 旅游投资公司网站建设ppt模板百度做免费推广的步骤
  • 成都开发网站建设广告创意设计竞赛
  • 做论坛网站要多少配置的服务器网站建设群发广告词
  • 大连凯杰建设有限公司网站在网站上做教学直播平台多少钱
  • 网站开发与网页制作难不难网站主题和风格
  • 北京市网站公司wordpress首页文章轮播
  • 南京做网站的公司排名安装wordpress教程
  • 用小程序做视频网站微信小程序需要服务器吗
  • 新手做网页做那个网站简单网页微信版网址
  • 住房和城乡建设部网站进不去网站怎么做图片转链
  • 在家做网站或ps挣钱接活中国企业网
  • 省市网站建设考核标准要求东莞模板建站平台
  • 企业网站建设应遵守的原则页面设置怎么设置
  • 建网站要备案公司如何建设一个网站