shit leetcode edge testcases

  1. Merge Intervals

try


"use strict"; /**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
* @created 2020-11-26
* @modified
*
* @description 56. Merge Intervals
* @description 56. 合并区间
* @difficulty Medium
* @complexity O(n)
* @time O(n)
* @augments
* @example
* @link https://leetcode.com/problems/merge-intervals/
* @link https://leetcode-cn.com/problems/merge-intervals/
* @solutions
*
* @best_solutions
*
*/ const log = console.log; /**
* @param {number[][]} intervals
* @return {number[][]}
*/
var merge = function(intervals) {
const result = [];
if(intervals.length < 2) {
return intervals || [];
}
// sort
intervals.sort(([a0], [b0]) => a0 > b0 ? 1 : -1);
const map = new Map();
let temp = intervals[0];
for (let i = 1; i < intervals.length; i++) {
// [[1,3],[2,6],[8,10],[15,18]]
const [t0, t1] = temp;
const [a0, a1] = intervals[i];
// log(`t0, t1 =`, t0, t1)
// log(`a0, a1 =`, a0, a1)
if(a0 <= t1 && a1 > t1) {
// merge
result.push([t0, a1]);
map.set(JSON.stringify([t0, a1]))
temp = [t0, a1];
} else if (a0 > t1) {
// 重复 bug
if(!map.has(JSON.stringify([t0, t1]))) {
result.push([t0, t1]);
map.set(JSON.stringify([t0, t1]))
}
result.push([a0, a1]);
map.set(JSON.stringify([a0, a1]))
temp = [a0, a1];
} else {
result.push([a0, a1]);
map.set(JSON.stringify([a0, a1]))
temp = [a0, a1];
}
}
return result;
}; const intervals = [[1, 3], [2, 6], [8, 10], [ 15, 18]];
const test = merge(intervals);
log(`test =`, test);
// [[1, 6], [8, 10], [15, 18]]
log(`test =`, JSON.stringify(test) === JSON.stringify([[1, 6], [8, 10], [15, 18]]) ? `` : ``); const intervals2 = [[1, 4], [4, 5]];
const test2 = merge(intervals2);
log(`test2 =`, test2);
// [[1, 5]]
log(`test =`, JSON.stringify(test2) === JSON.stringify([[1,5]]) ? `` : ``); const intervals3 = [[1, 4], [5, 6]];
const test3 = merge(intervals3);
log(`test3 =`, test3);
// [[1,4],[5,6]]
log(`test =`, JSON.stringify(test3) === JSON.stringify([[1,4],[5,6]]) ? `` : ``); const intervals4= [[1, 4], [0, 1]];
const test4 = merge(intervals4);
log(`test4 =`, test4);
// [[0,4]]
log(`test =`, JSON.stringify(test4) === JSON.stringify( [[0,4]]) ? `` : ``); const intervals5= [[1, 4], [1, 5]];
const test5 = merge(intervals5);
log(`test5 =`, test5);
// [[1,5]]
log(`test =`, JSON.stringify(test5) === JSON.stringify([[1,5]]) ? `` : ``);

https://leetcode.com/problems/merge-intervals/

https://leetcode-cn.com/problems/merge-intervals/submissions/

refs

https://github.com/LeetCode-Feedback/LeetCode-Feedback/issues/1457



xgqfrms 2012-2020

www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!


最新文章

  1. struts乱码问题
  2. 例3-12opencv设置ROI感兴趣区域
  3. .NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1)
  4. 关于Android平台的搭建的心得---汪永骏
  5. nginx 中文文件名显示问题
  6. UVA 1400 线段树
  7. js字符串操作总结
  8. redis 数据库安装和基本使用
  9. ss搭建
  10. 两种序列化的方法 Serializable Parcelable
  11. springMVC入门(一)
  12. OneNET麒麟座应用开发之七:控制采样电机
  13. python中的sockeserver模块简单实用
  14. How-to Install VMware Tools on Debian Stretch 9 32/64bit Linux+GNU
  15. English trip V1 - 2.Don&#39;t Do That Teacher:Patrick Key: 祈使句(imperatives)
  16. winform暴走表情制作器
  17. Android批量图片载入经典系列——afinal框架实现图片的异步缓存载入
  18. 并发编程 - IO模型 - 1.io模型/2.阻塞io/3.非阻塞io/4.多路复用io
  19. Exists/In/Any/All/Contains操作符
  20. [ngClass]、[ngStyle]的基本使用(转载)

热门文章

  1. P5858 Golden Swold
  2. Java并发包源码学习系列:阻塞队列实现之SynchronousQueue源码解析
  3. (十五)整合 Drools规则引擎,实现高效的业务规则
  4. Linux-CentOS7环境MySQL安装配置
  5. Django(orm)转
  6. java开发工具一个很好的注释模板
  7. js文字颜色闪烁
  8. Codeforces Global Round 11 C. The Hard Work of Paparazzi(dp/最长上升子序列)
  9. Java-Graphics类的绘图方法实现
  10. 【poj 1182】食物链(图论--带权并查集)