广度优先遍历 最短路径
  TEZNKK3IfmPf 2023年11月14日 70 0
//
// main.cpp
// test_
//
// Created by 杜辉锋 on 2022/10/20.

#include <iostream>
#include <vector>
#include <math.h>

int getShortestPath(std::vector<std::vector<int>>&vecGrids,std::vector<std::vector<int>>&vecScore,int m, int n)
{
for(int i =0; i < m; i++)
{
for(int j = 0; j < n; j++)
{
if(i ==0 && j == 0)
{
vecScore[i][j] = vecGrids[i][j];
}
else {
if(i == 0)
{
vecScore[i][j] = vecScore[i][j-1] + vecGrids[i][j];
}
else if(j == 0)
{
vecScore[i][j] = vecScore[i-1][j] + vecGrids[i][j];
}
else {
vecScore[i][j] = std::min(vecScore[i][j-1] + vecGrids[i][j],vecScore[i-1][j] + vecGrids[i][j]);
}
}
}
}
return vecScore[m-1][n-1];
}

/**
* 6,3,2,2,4
* 6,3,2,2,4
* 6,3,2,2,4
* 6,3,2,2,4
* 6,3,2,2,4
**/


int main(int argc, const char * argv[]) {
std::vector<std::vector<int>> vecTest;
std::vector<int> vecInfo = {6,3,2,2,4};
vecTest.push_back(vecInfo);
vecTest.push_back(vecInfo);
vecTest.push_back(vecInfo);
vecTest.push_back(vecInfo);
vecTest.push_back(vecInfo);
std::vector<std::vector<int>> vecScore(vecTest);
int nMinValue = getShortestPath(vecTest,vecScore,5, 5);
std::cout << "the MinShortestPath:" << nMinValue << std::endl;
return 0;
}

一种思路 可能并非最优解这样

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   21天前   34   0   0 C++
  TEZNKK3IfmPf   21天前   24   0   0 指针C++
  TEZNKK3IfmPf   2024年05月31日   23   0   0 算法C++