20181118_ARTS_week21

本周算法题 Remove Nth Node From End of List,分享了 vue 工程编译生产版本时添加图片压缩的方法,分享了一点关于掘金社区裁员过冬的想法。

Algorithm

/**
 * Remove Nth Node From End of List
 * https://leetcode.com/problems/remove-nth-node-from-end-of-list/
 * 
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @param {number} n
 * @return {ListNode}
 */
var removeNthFromEnd = function (head, n) {
    let nodeToReturn = head;

    //Have two pointers, one that is n ahead of the other
    let pointer1 = head;
    let pointer2 = head;

    //Move pointer2 to be n ahead
    for (let i = 0; i < n; i++) {
        if (pointer2) pointer2 = pointer2.next;
    }

    //If pointer2 doesn't exist, that means we must remove the head of the list
    if (!pointer2) {
        return nodeToReturn.next;
    }

    //Move both pointers until pointer2 reaches the end
    while (pointer2.next) {
        pointer1 = pointer1.next;
        pointer2 = pointer2.next;
    }

    //Save the node two places ahead of pointer1;    
    pointer1.next = pointer1.next.next;

    return nodeToReturn;
};

这题一开始一直没思路,然后看了 leetcode 的讨论,这个解法还是比较精妙的,用两个指针,然后距离就是 n,等到最后一个碰到末尾,要踢掉的元素就是 前一个指针的后一位。

Review

这周 review 暂停了,参加了水滴阅读一个活动,每天花十分钟,100 天阅读几本全英著作,水平太次,我还是从童话开始 :-)

Tip

vue 项目图片压缩。

项目中图片压缩还是很有必要的,你压缩那么多 css,js,一张图片就可以让你的压缩白费。

要在 vue 项目中实现图片压缩,需要对 webpack 配置做一些修改。

网上有提到使用 image-webpack-loader ,但是使用 这个需要修改 webpack.base.conf.js,不太合理,理论上只在编译 prod 版本时去做图片压缩,所以相应的配置也是应该在 webpack.prod.conf.js 。

对比之后选择了 imagemin-webpack-plugin ,只需要在 webpack.prod.conf.js 中加入这个插件就 ok 了。

安装

npm install --save-dev imagemin-webpack-plugin

使用:

var ImageminPlugin = require('imagemin-webpack-plugin').default
// Or if using ES2015:
// import ImageminPlugin from 'imagemin-webpack-plugin'

// 在 CopyWebpackPlugin 之后加入相关的内容
module.exports = {
  plugins: [
    // Copy the images folder and optimize all the images
    new CopyWebpackPlugin([{
      from: 'images/'
    }]),
    new ImageminPlugin({ test: /\.(jpe?g|png|gif|svg)$/i })
  ]
}

注意这里,如果用 require,后面有个 default,和一般的插件有点不一样。

Share

这周看到个不好的消息,由于资本寒冬,掘金社区需要裁员过冬了。

挺惋惜的,我加入掘金社区比较早,虽然现在比较少在上面发文章了,但还是会一直关注着它。这三年,掘金社区发展的很快,从一开始只是分享文章上去,到可以原创,再到沸点,掘金小册等。甚至由于掘金社区的影响力,甚至一度成为培训班标配的发文章地点。

然而,社区类产品想要盈利还是比较困难的,于是做了掘金小册产品。

也许知识付费类产品永远要面对一个问题就是面向的人群,面向初学者容易被骂骗钱,面向高级程序员,又卖不动。除此之外,还有头疼的品控问题,品控强了,推出的慢,更新的慢,作者又少,品控弱了,内容就水了。

于是可以看到某个国内知名前端团队,开发了个框架,然后用自己开发的框架写个 todo list 也能做成一本小册,这真是不要太赚。

不管怎么样,内容付费是大趋势,而历史总是波动中前进,加油,掘金。


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 20180715_ARTS_week03

    题目寻找最大子串,一开始没想到特别好的方法, 后来看了下大家的讨论,主要是用移动窗口的方式记录当前寻找的子串,当发现重复字符的时候,起始位置就从下一个开始。

    Bob.Chen
  • CSS3动画-抛物线运动

    今天来说下CSS3动画,目标是让一个方块做抛物线运动。主要用到的CSS3属性有animation,transform,@keyframes,transition...

    Bob.Chen
  • Mac上搭建一个干净的TensorFlow环境

    作为一个小前端,最近想折腾下深度学习方面的东西,这不 TensorFlow 刚发布了 1.0 嘛。于是就想在我的 Mac Book 上跑一跑。

    Bob.Chen
  • 微信PC端多开的秘密

    手机端多开微信我知道,像华为、小米等手机系统都对此做了支持,不过在运行Windows系统的电脑上怎么启动两个微信呢,这倒是一下引起了我的好奇。

    轩辕之风
  • 第一次!Apple Watch+微信=……

    北京时间3月10日凌晨, 美国旧金山芳草地艺术中心, 苹果新品发布会。 熬夜的果粉们,突然在屏幕上看到一个熟悉的身影:是的,你没看错,苹果的发布会上第一次出现并...

    腾讯大讲堂
  • LeetCode 108 Convert Sorted Array to Binary Search Tree

    给予一个从小到大的数组, 构建一颗二叉平衡树, 即每个节点的两个子树的深度不能相差超过 1.

    一份执着✘
  • 教程,模板,绿色软件,图片有这个网站就够了!

    Rookie
  • Re2Pcap:由原始http请求响应创建pcap数据包

    Re2Pcap是英文单词Request2Pcap和Response2Pcap的缩写。Community版的用户可以使用Re2Pcap快速的创建PCAP文件,并根...

    FB客服
  • CSS3随机背景图片切换特效

    Youngxj
  • 【晓头条】微信钱包支持关闭指纹支付 / 腾讯入股步步高将布局小程序 / 李书福成奔驰大股东

    1. 腾讯携手环球蓝联在西班牙马德里机场推出微信扫码实时退税服务。中国大陆旅客在离境机场,可通过「腾讯退税通」小程序快捷退税,退税将实时以人民币形式存入微信钱包...

    知晓君

扫码关注云+社区

领取腾讯云代金券