数组题目:118. 杨辉三角 、 119. 杨辉三角 II 、661. 图片平滑器 、598. 范围求和 II 、 419. 甲板上的战舰

118. 杨辉三角 

思路:

找规律,每一行的第一个元素和最后一个元素都是1,其中中间需要改变的数找对应的规律

比如第二行(从0开始)的2,是dp[1][0] + dp[1][1]。类似的找出对应的规律

代码:

class Solution {
public:vector<vector<int>> generate(int numRows) {vector<vector<int>> dp;for(int i = 0; i < numRows; i++){vector<int> line(i + 1);line[0] = line[i] = 1;for(int j = 1; j < i; j++){line[j] = dp[i - 1][j - 1] + dp[i - 1][j];}dp.push_back(line);}return dp;}
};

119. 杨辉三角 II

思路:

和上面一样,只是返回需要的那一行的数组

代码:

class Solution {public List<Integer> getRow(int rowIndex) {List<List<Integer>> ret = new ArrayList<List<Integer>>();for(int i = 0; i <= rowIndex; i++){List<Integer> row = new ArrayList<Integer>();for(int j = 0; j <= i; j++){if(j == 0 || j == i){row.add(1);}else{row.add(ret.get(i - 1).get(j - 1) + ret.get(i - 1).get(j));}}ret.add(row);}return ret.get(rowIndex);}
}

661. 图片平滑器

思路:

其实就是对应的每个点,看他八个邻居的值,如果在原数组的范围,就加起来求和,然后求平均值,如果超出就不加。

代码:

class Solution {public int[][] imageSmoother(int[][] img) {int m = img.length, n = img[0].length;int[][] ret = new int[m][n];int[][] dis = new int[][]{{0,0} , {1, 0}, {-1,0}, {0, -1}, {0, 1}, {-1, -1}, {-1, 1}, {1, 1}, {1, -1}};for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){int num = 0, sum = 0;for(int[] di : dis){int next_m = i + di[0], next_n = j + di[1];if(next_m < 0 || next_m >= m || next_n < 0 || next_n >= n){continue;}sum += img[next_m][next_n];num ++;}ret[i][j] += sum / num;}}return ret;}
}

598. 范围求和 II 

思路:

这个黄色的2,下面也包含了[3,3],所以我们发现左上角的(0,0)肯定是累加之后最大的,所以我们需要找到右下角和(0,0)一样的情况,所以就看ops里面最小的数组。

代码:

class Solution {public int maxCount(int m, int n, int[][] ops) {for(int[] op :ops){m = Math.min(m, op[0]);n = Math.min(n, op[1]);}return m * n;}
}

 419. 甲板上的战舰

思路:

我们假定只看左上角,那么会有两个情况,当当前左边为'x':

  • 左边的索引和上边的索引小于0
  • 他的左边和上边都没有'X'

代码:

class Solution {public int countBattleships(char[][] board) {int count = 0;int m = board.length, n = board[0].length;for(int i = 0; i < m;i ++){for(int j = 0; j < n; j++){if(board[i][j] == 'X' && (i == 0 || board[i - 1][j] != 'X') && (j == 0 ||board[i][j - 1] != 'X')){count ++;}}}return count;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/223104.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年软考证书有什么作用?哪个科目比较好考?

1、软考证书可以帮助评职称&#xff0c;可聘任工程师职务&#xff0c;评上了职称对于升职加薪是有好处的。 2、在一些大城市有“积分落户”政策&#xff0c;有了相应的软考证书可以帮助落户申请加分&#xff0c;对于想要在大城市落户的朋友也是有帮助的。 软考的中级证书是很…

OSG编程指南<三>:利用Cmake+VS2019+OSG3.6.5编译osgVerse

目前osgearth的ralease版本和debugx64都已经编译过了并且自测可用&#xff0c;放到资源里osgearth下载&#xff0c;供需要的朋友下载参考。环境配置&#xff1a;win10VS2017OSG3.6.4OSGEarth2.10.2&#xff0c; 1、配置OSG环境 编译好osg&#xff0c;然后在系统变量中配置如下…

WordPress:构建强大的网站和博客的完美选择

WordPress&#xff1a;构建强大的网站和博客的完美选择 一、WordPress 简介1.1 WordPress 介绍1.2 WordPress 优势 二、部署LNMP环境2.1 前提条件2.2 关闭防火墙和SELinux2.3 安装Nginx2.4 安装MySQL2.5 安装PHP2.6 配置Nginx2.7 配置MySQL2.8 配置PHP2.9 测试访问LNMP平台 三、…

必应的下一个十年:穿越创新的奇点时刻

2023年是微软搜索引擎必应进入中国市场十周年&#xff0c;2024年也将迎来必应上市十五周年。对于风起云涌的互联网公司来说&#xff0c;十年到十五年是一个相当长的创新周期。而在2023年初&#xff0c;以GPT为代表的大语言模型横扫全球科技产业&#xff0c;也对互联网和云计算带…

振南技术干货集:FFT 你知道?那数字相敏检波 DPSD 呢?(2)

注解目录 1 、DPSD 的基础知识 1.1 应用模型 1.2 原理推导 1.3 硬件 PSD &#xff08;相敏检波&#xff0c;就是从繁乱复杂的信号中将我们关心的信号检出来&#xff0c;同时对相位敏感。 数学原理&#xff0c;逃不掉的&#xff0c;硬着头皮看吧。&#xff09; 2 、DPSD …

R语言阶段复习一

创建一个长度为7的字符向量&#xff0c;元素为"A", "B", "C", "D", "E", "F", "G"&#xff0c;并命名为vec1。 创建一个因子&#xff0c;包含6个水果&#xff1a;"apple", "banana"…

vue.js+ElementUi+springboot大学生新生报到管理系统_gxty6

新生报到管理系统的开发过程中&#xff0c;采用B / S架构&#xff0c;结合最新流行的SpringMVC和Mybatis的springboot框架技术。 1.前后端分离项目&#xff0c;前端使用vue框架 2.后端使用Java编程语言的Springboot框架 3.项目中登录模块用到token 4.源码包部署调试 5.每个笔记…

解决OSError: [Errno 28] No space left on device报错和搭建AIrtest无线配置手机集群

OSError: [Errno 28] No space left on device和搭建AIrtest无线配置手机集群 做手机无限集群控制时&#xff0c;常常遇到这种错误问题。表示您的设备上没有足够的可用磁盘空间来完成某个操作。我们遇到了还得重新开端口和输入ip&#xff0c;如果有几百台手机是不是中午就不吃…

DIO算法

歌声和语音声带振动周期的快速可靠F0估计方法 原文题目&#xff1a; Fast and reliable F0 estimation method based on the period extraction of vocal fold vibration of singing voice and speech 发表在&#xff1a; AES 35TH INTERNATIONAL CONFERENCE, London, UK, 200…

Deepin使用记录-deepin系统下安装RabbitMq

目录 0、引言 1、由于RabbitMq是erlang语言开发的&#xff0c;所有需要先安装erlang 2、更新源并安装RabbitMq 3、安装完成之后&#xff0c;服务是启动的&#xff0c;可以通过以下语句查看状态 4、这样安装完成之后&#xff0c;是看不到web页面的&#xff0c;需要再安装一…

Unreal Engine 学习笔记 (4)—— 多方向动画

1.创建混合空间 1.设置水平方向命名为Direction表示行进方向 -45,300表示向左前方45度方向行走-90,300表示向正左方90度方向行走-135,300表示向左后方45度方向行走-180,300表示向正后方行走右侧方向动画与上述左侧使用同样方法设置Run动画与Walk动画使用同样方法设置 2. 设置…

苍穹外卖项目笔记(5)——Redis

1 入门 1.1 Redis 简介 Redis 是一个基于内存的 key-value 结构数据库&#xff0c;官网链接&#xff08;中文&#xff09;&#xff1a;https://www.redis.net.cn 特点&#xff1a; 基于内存存储&#xff0c;读写性能高适合存储热点数据&#xff08;热点商品、资讯、新闻&am…