日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构与算法之暴力递归改动态规划

發布時間:2024/2/28 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构与算法之暴力递归改动态规划 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據結構與算法之暴力遞歸改動態規劃


目錄

  • 二維數組最小路徑和
  • 暴力遞歸改動態規劃解析
  • 任意選擇數組arr中的數字,看能不能累加得到aim

  • 1. 二維數組最小路徑和

    (一) 題目描述

    (二) 思路
  • 遞歸版
  • 如果 i == matrix.length && j == matrix[0].length,說明到了右下角,返回即可。
  • 如果 i == matrix.length - 1,說明到了最后一行,只能向右走
  • 如果 j == matrix[0].length - 1,說明到了最后一列,只能向下走
  • 獲取向右走和向下走的最短路徑和。
  • 取向右走和向下走中小的一個加入當前點即為最短路徑和。(每一步都是如此)
  • //遞歸版public static int walk(int[][] matrix, int i, int j) {if (i == matrix.length && j == matrix[0].length) {return matrix[i][j];}if (i == matrix.length - 1) {return matrix[i][j] + walk(matrix, i, j + 1);}if (j == matrix[0].length - 1) {return matrix[i][j] + walk(matrix, i + 1, j);}//right -》 右邊位置到右下角的最短路徑和int right = walk(matrix, i, j + 1);//down -》 下邊位置到右下角的最短路徑和int down = walk(matrix, i + 1, j);return matrix[i][j] + Math.min(right, down);}

    2. 暴力遞歸改動態規劃解析

  • 什么樣的嘗試版本可以改動態規劃?

  • 當遞歸過程中發現有重復狀態,而且重復狀態與到達的路徑是沒有關系的,那么一定可以改動態規劃
  • 就是說,(0,0)到(1,1),不管(0,0)是向右走再向下走,還是向下走再向右走到達(1,1)(1,1)的最短路徑還是不會變,叫無后效性問題。參數固定了,返回值一定是固定的,就是無后效性問題。

  • 因為 i,j的變化范圍我們知道,是一張二維表。所以所有的返回值肯定都在這個表里面。也就是說,可以在一張表中

  • 把需要的位置點出來
  • 回到base case中,把不被依賴的值設置好
  • 回到遞歸中,發現假設當前點是(i,j),一個普遍的位置需要右邊的狀態和下邊的狀態
  • 推出普遍位置依賴之后,反過去就是計算順序,最后一行弄好,從右到左,從下到上依次推到頂部就是答案。這就是暴力遞歸改動態規劃的統一套路
  • 如上個題:
  • 總的就是說

  • 寫出嘗試版本
  • 分析可變參數,分析哪幾個參數可以代表返回值狀態,可變參數是幾維的,它就是幾維表
  • 看看最終的狀態是哪一個,在表中點出來,然后回到base case中,把不依賴的值設置好,看看一個普遍位置需要哪些位置,逆著回去,就是填表的順序,這就是暴力遞歸改動態規劃
  • 上述題由暴力遞歸改動態規劃代碼實現為

  • public static int minPath1(int[][] matrix) {return process1(matrix, matrix.length - 1, matrix[0].length - 1);}public static int process1(int[][] matrix, int i, int j) {int res = matrix[i][j];if (i == 0 && j == 0) {return res;}if (i == 0 && j != 0) {return res + process1(matrix, i, j - 1);}if (i != 0 && j == 0) {return res + process1(matrix, i - 1, j);}return res + Math.min(process1(matrix, i, j - 1), process1(matrix, i - 1, j));}public static int minPath2(int[][] m) {if (m == null || m.length == 0 || m[0] == null || m[0].length == 0) {return 0;}int row = m.length;int col = m[0].length;int[][] dp = new int[row][col];dp[0][0] = m[0][0];for (int i = 1; i < row; i++) {dp[i][0] = dp[i - 1][0] + m[i][0];}for (int j = 1; j < col; j++) {dp[0][j] = dp[0][j - 1] + m[0][j];}for (int i = 1; i < row; i++) {for (int j = 1; j < col; j++) {dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + m[i][j];}}return dp[row - 1][col - 1];}

    3. 任意選擇數組arr中的數字,看能不能累加得到aim

  • 題目描述
  • 代碼實現
  • public class Code_08_Money_Problem {public static boolean money1(int[] arr, int aim) {return process1(arr, 0, 0, aim);}public static boolean process1(int[] arr, int i, int sum, int aim) {if (sum == aim) {return true;}// sum != aimif (i == arr.length) {return false;}return process1(arr, i + 1, sum, aim) || process1(arr, i + 1, sum + arr[i], aim);}public static boolean money2(int[] arr, int aim) {boolean[][] dp = new boolean[arr.length + 1][aim + 1];for (int i = 0; i < dp.length; i++) {dp[i][aim] = true;}for (int i = arr.length - 1; i >= 0; i--) {for (int j = aim - 1; j >= 0; j--) {dp[i][j] = dp[i + 1][j];if (j + arr[i] <= aim) {dp[i][j] = dp[i][j] || dp[i + 1][j + arr[i]];}}}return dp[0][0];}public static void main(String[] args) {int[] arr = { 1, 4, 8 };int aim = 12;System.out.println(money1(arr, aim));System.out.println(money2(arr, aim));}}

    總結

    以上是生活随笔為你收集整理的数据结构与算法之暴力递归改动态规划的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产精品999视频 | 日韩污视频在线观看 | 欧美伊人| 亚洲影院一区 | 日韩av在线一区二区 | 好吊妞视频这里只有精品 | 亚洲天堂2015 | 日本在线免费看 | 91精品免费 | 久久频| 国产又粗又猛又爽又黄视频 | 国产成人精品视频 | 一级做a爱片久久 | 久草91 | 91色啪| 亚洲激情图片区 | 丰满人妻翻云覆雨呻吟视频 | av网站久久 | 台湾chinesehdxxxx少妇 | 日本泡妞视频 | 在线观看日韩av电影 | 国产鲁鲁视频在线观看特色 | 天堂在线官网 | 麻豆av网| 国产精品久久久一区二区 | 日韩视频精品在线 | 在线毛片网站 | 午夜亚洲成人 | 在线免费观看黄色网址 | 黄色成人免费网站 | 国产精品.www | 黄色一级一片免费播放 | 日本一级淫片色费放 | 91精品国产一区二区三区 | 天堂中文在线8 | 免费黄色视屏 | 高清在线一区二区三区 | 天天综合天天综合 | 一级黄色录象 | 欧美一区二区福利视频 | 91精品视频网 | 欧美人妖xxxx | 91欧美视频 | 国产精品久久久久久亚洲 | 在线视频 日韩 | 国产一区二区在线播放 | 精品成人无码一区二区三区 | 99热在线看 | 亚洲高清毛片一区二区 | 不卡日本视频 | 乖女从小调教h尿便器小说 欧美韩一区二区 | 日本三级吃奶头添泬无码苍井空 | 中文字av| 毛片手机在线 | 人人人人爽 | 爱插美女网 | 男女av网站| 国产成人无码精品久久二区三 | 久久靖品 | 天天碰天天操 | 久久成人综合网 | av中出| 欧美一区二区三区在线观看视频 | 1024金沙人妻一区二区三区 | 九色精品在线 | 中文字幕在线观 | 国产精品日韩欧美一区二区三区 | 亚洲精品国产精品国自产观看浪潮 | 久草视频这里只有精品 | 精品国偷自产一区二区三区 | 色综合99久久久无码国产精品 | 在线va视频 | 香蕉视频黄色在线观看 | 欧洲成人免费视频 | 久久成人18免费观看 | 免费成人福利视频 | 国产精品二区三区 | 免费国产一区二区 | 97精品国产97久久久久久春色 | 影音先锋在线看片资源 | 91欧美在线 | 国产毛片久久 | 日韩作爱 | 欧美在线一级视频 | 日本理论视频 | 黄色wwww | 无毒黄色网址 | 毛片毛片 | 日本免费一区二区三区视频 | 日本 奴役 捆绑 受虐狂xxxx | 欧美日韩黄 | 日韩不卡毛片 | 手机在线看永久av片免费 | 屁屁影院第一页 | av小说免费在线观看 | 国产伦精品一区二区三区高清 | 91久久国产精品 | 国产最爽的乱淫视频国语对白 | 爆操老女人 |