机器人的运动范围 剑指offer66题
include "stdafx.h"
#include<vector>
#include<algorithm>
#include<string>
#include<iostream>
#include<stack>
using namespace std;
class Solution {
public:
int getSum(int rows, int cols)
{
int sum = 0;
while (rows!=0)
{
sum += rows % 10;
rows = rows / 10;
}
while (cols != 0)
{
sum += cols % 10;
cols = cols / 10;
}
return sum;
}
int count = 0;
int movingCount(int threshold, int rows, int cols)
{
vector<vector<bool>> visited(rows,vector<bool>(cols,false));
getCount(threshold, 0, 0, visited, rows, cols);
return count;
}
void getCount(int threshold, int rows, int cols, vector<vector<bool>> &visited,int m,int n)
{
if (getSum(rows, cols) <= threshold)
{
count++;
// cout << count << endl;
visited[rows][cols] = true;
if (cols - 1 >= 0&&visited[rows][cols-1]==false)
{
getCount(threshold, rows, cols - 1, visited,m,n);
}
if (cols + 1 < n && visited[rows][cols + 1]==false)
{
getCount(threshold, rows, cols + 1, visited,m,n);
}
if (rows - 1 >= 0 && visited[rows-1][cols]==false)
{
getCount(threshold, rows-1, cols , visited,m,n);
}
if (rows + 1 < m && visited[rows + 1][cols]==false)
{
getCount(threshold, rows + 1, cols, visited,m,n);
}
// visited[rows][cols] = false;
//count--;
}
}
};
int main()
{
Solution s;
cout << s.movingCount(5, 10, 10) << endl;
return 0;
}
机器人的运动范围 剑指offer66题的更多相关文章
- 剑指Offer66题的总结、目录
原文链接 剑指Offer每日6题系列终于在今天全部完成了,从2017年12月27日到2018年2月27日,历时两个月的写作,其中绝大部分的时间不是花在做题上,而是花在写作上,这个系列不适合大神,大牛, ...
- 剑指offer35题:第一个只出现一次的字符+剑指offer55题:字符流中第一个不重复的字符+剑指offer51题:数组中重复的数字
在看剑指offer的时候,感觉这三个题目很像,都是用哈希表可以解决,所以把这三个题整理出来,以供复习. 剑指offer35题:第一个只出现一次的字符 题目描述:在字符串中找出第一个只出现一次的字符.如 ...
- 学会从后往前遍历,例 [LeetCode] Pascal's Triangle II,剑指Offer 题4
当我们需要改变数组的值时,如果从前往后遍历,有时会带来很多麻烦,比如需要插入值,导致数组平移,或者新的值覆盖了旧有的值,但旧有的值依然需要被使用.这种情况下,有时仅仅改变一下数组的遍历方向,就会避免这 ...
- 剑指offer66:机器人的运动范围
1 题目描述 地上有一个m行和n列的方格.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子. 例如,当k为18时,机器 ...
- 剑指offer66:机器人的活动范围
地上有一个m行和n列的方格.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子. 例如,当k为18时,机器人能够进入方格 ...
- 剑指offer--7题
*题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. *句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. *例如输入“I am a student.”,则输出“st ...
- 剑指offer--21题
#include "stdafx.h" #include<iostream>using namespace std; void LeftRotateString(cha ...
- 剑指offer20题表示数值的字符串:这题实在是太优雅了
目录 前言 一.憨憨初解 1.思路 2.代码 3.战绩 4.反思 二.看懂再解 1.思路 2.代码 3.C++版战绩 总结 前言 题目来源:https://leetcode.cn/problems/b ...
- 剑指offer--3题
题目:输入一个整形数组,数组里有正数也有负数.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). 例如输入的数组为1, -2, 3, ...
随机推荐
- Problem M: 第几天——C语言初学者百题大战之十八
#include<stdio.h> int main() { int a,b,c,s; scanf("%d-%d-%d",&a,&b,&c); ...
- B/S架构 Web打印程序(Argox)
B/S架构 Web打印程序 对于B/S架构下的管理软件系统,在客户端浏览器页面中如何透过本地打印机或网络打印机打印条码标签,Argox提供最常用的2种类型打印机集成方案. ● PPLA 打印机IE游 ...
- Telnet窗口尺寸选项
转:http://www.cnpaf.net/Class/Telnet/200408/6.html 1.命令名称和选项代码 名称=NAWS(NegotiateAboutWindowSize)协商窗口的 ...
- Matlab与C++混合编程 编写独立外部应用程序时出现“无法定位序数3906于动态链接库LIBEAY32.dll上”错误
出现“无法定位序数3906于动态链接库LIBEAY32.dll上”错误,这种错误一般是同名函数出现在两个不同的头文件中了. 笔者的这个错误是由于 #include "mat.h" ...
- mongodb_服务端安装及连接
安装环境:Windows7 64位 附件内容: 1.mongodb Windows7 补丁:451413_intl_x64_zip.exe 2.mongodb Windows 安装程序:mon ...
- PostgreSQL配置文件--复制
4 复制 REPLICATION 4.1 Sending Server(s) 4.1.1 max_wal_senders 数字型 默认: max_wal_senders = 10 , 为0表示启用流复 ...
- 用Storyboard构建标签栏多页面应用程序UI
注: 貌似CSDN的显示效果不佳,假设有须要的话我能够上传pdf格式的: 另外假设文章中有错误还请给位多多提意见,谢谢. pdf格式文档:http://download.csdn.net/detail ...
- iOS: ios视频播放(MPMediaPlayerController,AVPlayer,AVPlayerViewcontroller、ffmpeg-AVPlayer)
介绍: 和音频播放一样,ios也提供个很多的API.如mediaPlayer.framework下的MPMediaPlayerController.AVFounditon.framework下的AVP ...
- 【译】你对position的了解有多少?
此文根据Steven Bradley的<How Well Do You Understand CSS Positioning?>所译,整个译文带有我自己的理解与思想,如果译得不好或不对之处 ...
- [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误解决方法总结
今天做一个特殊的业务处理,用JDBC连接SQLServer数据库载入驱动的时候,报例如以下错误: java.sql.SQLException: [Microsoft][SQLServer 2000 D ...