leetcode- 距离顺序排序矩阵单元格
C++解法:
#include <iostream>
#include <vector>
#include <map>
#include <algorithm> using namespace std; class Solution {
public:
vector<vector<int>> allCellsDistOrder(int R, int C, int r0, int c0) {
vector<vector<int>> res(R*C, vector<int>());//数组第三个位置存放两点的曼哈顿距离
int num = ;
for (int i = ; i<C; i++)
{
for (int j = ; j<R; j++)
{
res[num][] = j;
res[num][] = i;
res[num][] = abs(r0 - j) + abs(c0 - i);//曼哈顿距离
num++;
}
}
sort(res.begin(), res.end(), ismax);//排序
for (int i = ; i<num; i++)//将曼哈顿距离删除
{
res[i].pop_back();
}
return res;
}
static bool ismax(vector<int> &a, vector<int> &b)//根据曼哈顿距离升序排序
{
return a[]<b[];
}
}; int main()
{
Solution m;
m.allCellsDistOrder(, , , ); return ;
}
Python解法:
def allCellsDistOrder(R, C, r0, c0):
dist_list = [[] for i in range(R+C)]
for i in range(R):
for j in range(C):
distinct = abs(r0 - i) + abs(c0 - j)
dist_list[distinct].append([i, j])
result = []
for i in dist_list:
if i:
result.extend(i)
else:
break
return result print(allCellsDistOrder(2, 3, 1, 2))
leetcode- 距离顺序排序矩阵单元格的更多相关文章
- LeetCode.1030-曼哈顿距离排序矩阵单元格(Matrix Cells in Distance Order)
这是小川的第384次更新,第412篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第246题(顺位题号是1030).我们给出一个矩阵,其中R行和C列具有整数坐标(r,c)的 ...
- [Swift]LeetCode1030. 距离顺序排列矩阵单元格 | Matrix Cells in Distance Order
We are given a matrix with R rows and C columns has cells with integer coordinates (r, c), where 0 & ...
- PyQt5单元格操作大全
1.显示二维列表数据(QTableView)控件 '''显示二维列表数据(QTableView)控件数据源model需要创建一个QTableView实例和一个数据源model,然后将其两者关联 MVC ...
- count、counta函数巧妙运用于合并单元格填充序号
函数运用: 1.COUNT(value1,value2, ...) value1 是必需参数. 要计算其中数字的个数的第一项.单元格引用或区域. value2, ... 为可选参数 ...
- Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值
Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值 cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号 cxGrid1DB ...
- 【c语言】二维数组中的查找,杨氏矩阵在一个二维数组中,每行都依照从左到右的递增的顺序排序,输入这种一个数组和一个数,推断数组中是否包括这个数
// 二维数组中的查找,杨氏矩阵在一个二维数组中.每行都依照从左到右的递增的顺序排序. // 每列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个数组和一个数.推断数组中是否包括这个数 #i ...
- WinForm笔记1:TextBox编辑时和DataGridView 单元格编辑时 的事件及其顺序
TextBox 编辑框 When you change the focus by using the mouse or by calling the Focus method, focus event ...
- JQ完成表格单元格顺序的上移下调
如有指教及疑问,欢迎留言 HTML代码 <table class="exampletable"> <thead> <tr> <th> ...
- 实现GridControl的行单元格非顺序跳转
用GridControl控件添加数据的时候发现,有一些字段过多但是并不是每个字段都需要用户输入,每个单元格都回车跳转的时候不仅浪费时间,而且用户体验也不好,就需要单元格跳转的时候,不需要的字段可以隔过 ...
随机推荐
- KiCAD批量修改丝印大小
KiCAD批量修改丝印大小 1.编辑->编辑文本与图片属性 2.范围 选择封装参考,活动 首选选择 “设定为指定值”,然后选择要修改的层,输入想要修改的参数 注意:文本高度与文本宽度比例要适中, ...
- Centos6安装破解Confluence6.3.1
confluence是一个专业的企业知识管理与协同软件,可以用于构建企业wiki.通过它可以实现团队成员之间的协作和知识共享 安装和破解包百度网盘地址: 链接:https://pan.baidu.co ...
- 视频专家之路【三】:Vs开发环境的搭建
本文是听了雷宵骅大神的课之后的总结,部分内容借用了其PPT的内容,如有侵权请告知删除. 雷宵骅大神的博客为:https://blog.csdn.net/leixiaohua1020 这里提及一点,原来 ...
- chroot 试用alpinelinux安装软件包的问题
前边有说明使用chroot 体验alpinelinux,但是因为默认没有dns server,造成软件包无法下载 现象 问题原因 解决方法 copy host resolv.conf 到alpine ...
- docker提示没有开启转发解决方法
vim /usr/lib/sysctl.d/00-system.conf [root@t1 ~]# vim /usr/lib/sysctl.d/00-system.conf# Kernel sysc ...
- 73. PrintStream(打印流)
PrintStream(打印流) 打印流可以打印任意类型的数据,而且打印前都会把数据转换成字符串再进行打印(就是把数据存入硬盘中) 编码与解码图例:下面我们来看看一个简单的字节输出流 public ...
- Ubuntu图形界面和终端界面切换快捷键
Ctrl+Alt+F1可以从图形界面切换到终端界面. Ctrl+Alt+F7可以从终端界面退出来,重新回到图形界面
- java中获取类加载路径和项目根路径的5种方式分析
package my; import Java.io.File; import java.io.IOException; import java.net.URL; public class MyUrl ...
- PHP 图形验证码
一段生成图形验证码的代码,向原创作者致谢. 1.将以下代码保存为 txm.php ,注:直接运行该页面是没有结果的,要用另一页面引用,请看步骤2 <?php session_start(); $ ...
- B606 ChangeNet
@echo off Setlocal Enabledelayedexpansion title B606 ChangeNet echo Checking... set inside=F&set ...