当前位置:   article > 正文

力扣 (LeetCode) 218.天际线问题_天际线问题的伪代码描述

天际线问题的伪代码描述

题目链接

力扣(LeetCode) 218.天际线问题

不想戳的看下图:
在这里插入图片描述
样例:
在这里插入图片描述
数据范围:

在这里插入图片描述

解题方法1:

扫描线法

代码如下(java):

class Solution {
   
	// 排序规则,按照x的坐标升序排列,若x坐标相同,右端点在前
	class IntCompator implements Comparator<int[]> {
   
		@Override
		public int compare(int[] o1, int[] o2) {
   
			// TODO Auto-generated method stub
			if (o1[0] == o2[0])
				return o2[1] - o1[1];
			return o1[0] - o2[0];
		}
	}

	public List<List<Integer>> getSkyline(int[][] buildings) {
   
		List<List<Integer>> list = new ArrayList<>();
		int newbuild[][] = new int[2 * buildings.length][2];

		// 将建筑物坐标化成[右端点,高度],[左端点,-高度],用高度的正负来判断是左端点还是右端点。
		for (int i = 0; i < buildings.length; i++) {
   
			newbuild[2 * i][0] = buildings[i][0];
			newbuild[2 * i][1] = buildings[i][2];
			newbuild[2 * i + 1][0] = buildings[i][1];
			newbuild[2 * i + 1][1] = -buildings[i][2];
		}
		Arrays.sort(
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码架构师/article/detail/62802
推荐阅读
相关标签
  

闽ICP备14008679号