17.7.5学习笔记

1.如果在函数内栈区创建一个数组,并且返回这个数组,会失败。因为数组所在的栈区会因为函数的返回动作而被回收。其他类型的可以。或者将数组通过动态分配内存保存在堆栈区。

地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?

初次:

class Solution {
public:
int sumDigit(int a) {
int sum = 0;
while(a > 0) {
int b = a % b;
sum += b;
a /= 10;
}
return sum;
};
int hasPath(int threshold, int row, int col, int rows, int cols, bool *visited) {
int count = 0;
if(row >= 0 && row < rows && col >= 0 && col < cols && !visited[row * cols + col] && sumDigit(row) + sumDigit(col) <= threshold) {
count = 1 + hasPath(threshold, row + 1, col, rows, cols, visited) + hasPath(threshold, row - 1, col, rows, cols, visited)
+ hasPath(threshold, row, col - 1, rows, cols, visited) + hasPath(threshold, row, col + 1, rows, cols, visited);
}
return count;
};
int movingCount(int threshold, int rows, int cols)
{
bool visited = new bool[rows * cols];
for(int i = 0; i < rows * cols; ++i)
visiter[i] = false;

if(threshold <= 0 || rows < 0 || cols < 0)
return -1;
return hasPath(threshold, 0, 0, rows, cols, visited);

};
};

时间: 2024-10-23 11:08:17

17.7.5学习笔记的相关文章

2016年3月17日Android学习笔记

1.Java.io.ByteArrayOutputStream.writeTo()方法实例 java.io.ByteArrayOutputStream.writeTo(OutputStream out) 方法写入该字节数组输出流的内容到指定的输出流参数. 2.xiecheng的数据库都是用的Mysql,不用Oracle.不用SQLServer,因为SQLServer有漏洞,不安全. 3.4. 5.

Node.js学习笔记【1】入门(服务器JS、函数式编程、阻塞与非阻塞、回调、事件、内部和外部模块)

笔记来自<Node入门>@2011 Manuel Kiessling JavaScript与Node.js Node.js事实上既是一个运行时环境,同时又是一个库. 使用Node.js时,我们不仅仅在实现一个应用,同时还实现了整个HTTP服务器. 一个基础的HTTP服务器 server.js:一个可以工作的HTTP服务器 var http = require("http"); http.createServer(function(request, response) { r

Linux命令学习笔记目录

Linux命令学习笔记目录 最近正在使用,linux,顺便将用到的命令整理了一下. 一. 文件目录操作命令: 0.linux命令学习笔记(0):man 命令 1.linux命令学习笔记(1):ls命令 2.linux命令学习笔记(2):cd命令 3.linux命令学习笔记(3):pwd命令 4.linux命令学习笔记(4):mkdir命令 5.linux命令学习笔记(5):rm 命令 6.linux命令学习笔记(6):rmdir 命令 7.linux命令学习笔记(7):mv命令 8.linux命

Oracle 学习笔记 17 -- 异常处理(PL/SQL)

程序在执行过程中出现异常是正常的,在程序的编写过程中出现异常也是不可避免的.但是要有相应的异常处理的机 制,来保证程序的正常执行.PL/SQL程序执行过程中出现的错误,称为异常.一个优秀的程序都应该能够正确处理 各种出错的情况,并尽可能的从错误中恢复.PL/SQL提供了异常处理机制. 概念: 异常处理(exception)是用来处理正常执行过程中未预料的事件,程序块的异常处理定义的错误和自定义的错误, 由于PL/SQL程序块一旦产生异常而没有指出如何处理时,程序就会异常的终止. 有三种类型的错误

Java 学习笔记(2015.7.13~17)

Java 学习笔记(2015.7.13~17) Java this关键字 表示本类中的属性,调用本类中的方法 class Person {        private String name;         private int age;         public Person(String name, int age) {         this.name = name;//调用本类中的属性         this.age = age;//同上} //get&set方法:    

2014年7月17日学习笔记--PHP的循环结构学习

今天重新开始学习PHP, 为了学习PHP买了书,但书是一本大部头的书,不好带一直没有好好学习,我决定把书拆了分章来看,这样也方便带 也可以很快完成任务. 今天在linux mint 17上安装了lnmp 环境 和brackets工具,来学PHP,小的例子用vim来完成的. 记录一下自己美化的九九乘法表 代码如下: <?php     for($i=1;$i<=9;$i++){         for($j=1;$j<=9;$j++){             if($i>=$j){

python基础教程_学习笔记17:标准库:一些最爱——time

标准库:一些最爱 time time模块所包含的函数能够实现以下功能: 获取当前时间.操作系统时间和日期.从字符串读取时间以及格式化时间为字符串. 日期可以用实数(从"新纪元"的1月1日0点开始计算到现在的秒数,新纪元是一个与平台相关的年份,对unix来说是1970年),或者是包含有9个整数的元组. 日期元组的字段含义 如元组: (2008,1,21,12,2,56,0,21,0) 表示2008年1月21日12时2分56秒,星期一,且是当年的第21天(无夏令时). 索引 字段 值 0

Ext.Net学习笔记17:Ext.Net GridPanel Selection

Ext.Net学习笔记17:Ext.Net GridPanel Selection 接下来是Ext.Net的GridPanel的另外一个功能:选择. 我们在GridPanel最开始的用法中已经见识过如何使用选择功能,今天我们这片笔记将更加详细的介绍Ext.Net GridPanel的Selection功能. Ext.Net GridPanel Selection包括三种: RowSelectionModel:行选择模型 CheckboxSelectionModel:带有复选框的行选择模型 Cel

C++学习笔记17,构造函数体内初始化数据成员与构造函数初始化器的区别(一)

在构造体内初始化数据成员是最常见的方法. 例如: #include <iostream> using namespace std; class A { private: int i; string s; public: A(int ii,string ss){ //在构造函数体内初始化数据成员 i=ii; s=ss; cout<<"ctor:i="<<i<<",s="<<s<<endl; } /