我的js算法爬坑之旅-有序数组的平方

第八天:力扣第977题,有序数组的平方

地址:leetcode-cn.com/problems/sq…

思路:先用绝对值排序,然后进行平方操作。

var sortedSquares = function(A) {
    A.sort(compare);//一定要用函数比较
    function compare(value1, value2) {
        if (Math.abs(value1) > Math.abs(value2) ) {
            return 1;
        } else if (Math.abs(value1)<  Math.abs(value2)) {
            return -1;
        } else {
            return 0;
        }
    }
    var mapResult = A.map(function(item){
        return item * item;
    });//平方操作
    return mapResult;
};
执行用时:128 ms, 在所有 JavaScript 提交中击败了92.46%的用户
内存消耗:44.6 MB, 在所有 JavaScript 提交中击败了12.82%的用户

其他的就是双指针了,没啥看的。

var sortedSquares = function (A) {
  /* 中间开始的双指针 */
  const resArr = [], len = A.length;
  let left = 0, right = len;

  while (left < right) { // 找到中间的数
    const mid = left + ((right - left) >> 1);

    if (A[mid] < 0) {
      left = mid + 1;
    } else if (A[mid] > 0) {
      right = mid;
    } else {
      left = right = mid
      break;
    }
  }
  --left;
  while (left >= 0 || right < len) {
    if (right >= len || (left >= 0 && -A[left] < A[right])) {
      resArr.push(A[left] ** 2);
      --left;
    } else {
      resArr.push(A[right] ** 2);
      ++right;
    }
  }
原文链接:juejin.im

上一篇:再也不会忘记“In/hasOwnProperty/for…in/for…of/forEach/map()”
下一篇:vue-------形成父子组件及常见问题

相关推荐

  • 🙋Hanjst汉吉斯特改进+enSafeExpression安全表达式等

    Hanjst汉吉斯特模版语言及模版引擎,近期持续改进升级。 这次改进主要是增加了对安全输出表达式兼容,由于涉及到对软件开发过程中的效率和软件运行效率的平衡和取舍,所以多写了几句,以描述这个权衡利弊对...

    5 个月前
  • 🙋Hanjst汉吉斯特升级:+showImageAsync及性能改进等

    自2019年元旦🙋Hanjst汉吉斯特 模板语言及其编译引擎发布,已经过去一年多了。 这期间随着 🙋Hanjst汉吉斯特 的推广应用,我们也陆续发布了如下一些更新内容: 🛠️Hanjst/汉吉...

    6 个月前
  • 🙋Hanjst汉吉斯特优化+JsonDataFromScript等

    近日继续对 🙋Hanjst汉吉斯特优化改进。这次的改进思考是从服务器端返回的 HanjstJsonData的容器设计问题。目前的做法是服务器端的HanjstJsonData放入终端页面的一个Div元...

    5 个月前
  • 😉我用 Nuxt.js 仿了个掘金

    前言 首先肯定是要夸夸掘金啦,最开始从 CSDN 到 博客园 再到 掘金,个人感觉掘金的技术氛围非常的nice,真是个宝藏社区👏。技术文章大多以前端为主,对前端开发者非常友好,质量也是歪瑞古的。

    5 个月前
  • 😀一个原生js弹幕库

    danmujs 😀一个原生js弹幕库,基于 CSS3 Animation 地址、核心代码 本项目基于 rc-bullets,项目约70%的代码基于rc-bullets,首先要感谢这个项目的作者...

    8 个月前
  • 🕵️‍♀️由原型到JS中的“模拟类”

    讲述了有关 JavaScript 中原型相关知识,又引出了 JavaScript 中的**“类“**究竟是什么?,以及一系列相关问题。 一、前置知识 1、JavaScript 的面向对象(OOP) ​...

    7 个月前
  • 🔥《吊打面试官》系列 Node.js 必知必会必问!

    前言 codeing 应当是一生的事业,而不仅仅是 30 岁的青春🍚 本文已收录 Github,欢迎 Star,一起接水💧 作为一个在互联网公司面一次拿一次 Offer 的面霸,打败了无...

    7 个月前
  • 📝记录:近期面试JS的提问

    1、求y和z的值是多少? var x = 1; var y = 0; function add(n){n=n+1;} y = add(x); console.log(y); 答案:为un...

    9 天前
  • 💖CSS + JS 送学妹满屏幕小爱心

    故事开始 午饭时间,暗恋已久的学妹拉着我的衣袖:“学长学长,你能不能让这些爱心变成五颜六色的吗~”。 我在旁边笑开了花~~~ 诶呀,口水流出来了。

    6 个月前
  • (干货👍)从详细操作js数组到浅析v8中array.js

    前言 最近在写面试编程题,经常用到数组,经常想偷个懒,用它提供的方法,奈何还是对数组方法使用不熟练,导致写了很多的垃圾代码,很多地方稍加修改的话肯定变得简洁高效优雅👊 所以✍这篇文章本着了解一下Ja...

    4 个月前

官方社区

扫码加入 JavaScript 社区