博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
surrounded-regions merge-intervals
阅读量:5013 次
发布时间:2019-06-12

本文共 1624 字,大约阅读时间需要 5 分钟。

最近刷了leetcode上有关数组的题,在这里做一个总结。

1. surrounded-regions

思路:将所有能被包围的'O'全部转化为’X‘  =>  除了边界上以及所有与边界上的’O‘相连的’O‘全部被转化。

知识点:dfs深度遍历边界上以及所有与边界上的’O‘相连的’O‘

class Solution {public:    int rownum = 0;    int colnum = 0;    void solve(vector
> &board) { if(board.size()==0)return; if(board.at(0).size()==0)return; rownum = board.size(); colnum = board[0].size(); for(int i=0;i
> &board,int row,int col){ if(board[row][col]=='O'){ board[row][col]='*'; if(row
0)dfs(board,row-1,col); if(col
0)dfs(board,row,col-1); } }};

 

2. merge-intervals

思路:思路很简单先按每个数组起始位置的大小顺序排列好,然后不断从前往后合并即可。这种题一定要考虑特殊情况,比如如果输入为空或只输入一个数组的时候,不要只考虑普遍情况而出现数组越界。

1 class Solution { 2 public: 3     static bool compare(Interval a,Interval b){ 4         return (a.start
merge(vector
&intervals) { 7 int num=0; 8 if(intervals.size()==0||intervals.size()==1)return intervals;10 sort(intervals.begin(),intervals.end(),compare);11 for(int i=1;i
=intervals[i-1].start&&intervals[i].start<=intervals[i-1].end){13 intervals[i].start=min(intervals[i].start,intervals[i-1].start);14 intervals[i].end=max(intervals[i].end,intervals[i-1].end);15 intervals[i-1].start=-1000000;16 num++;17 }18 }19 vector
res;20 for(int i=0;i

 

转载于:https://www.cnblogs.com/xctcherry/p/8505976.html

你可能感兴趣的文章
ios app 真机crash报告分析
查看>>
CRC标准以及简记式
查看>>
SEO搜索引擎
查看>>
关于本地使用tomcat部署web应用,浏览器自动跳转为https的问题
查看>>
一、Text To Speech
查看>>
Java读取并下载网络文件
查看>>
github上构建自己的个人网站
查看>>
在word中粘贴的图片为什么显示不完整
查看>>
SQL Server 数据库的鼠标操作
查看>>
net软件工程师求职简历
查看>>
总线置顶[置顶] Linux bus总线
查看>>
nullnullHandling the Results 处理结果
查看>>
SQL SERVER BOOK
查看>>
JS基础回顾,小练习(判断数组,以及函数)
查看>>
多任务——进程
查看>>
WCF:如何将net.tcp协议寄宿到IIS
查看>>
WebAPI HelpPage支持area
查看>>
Path元素
查看>>
php_soap扩展应用
查看>>
GUID和自增ID的比较_top
查看>>