20181118_ARTS_week21
栏目: JavaScript · 发布时间: 7年前
内容简介:本周算法题 Remove Nth Node From End of List,分享了 vue 工程编译生产版本时添加图片压缩的方法,分享了一点关于掘金社区裁员过冬的想法。这题一开始一直没思路,然后看了 leetcode 的讨论,这个解法还是比较精妙的,用两个指针,然后距离就是 n,等到最后一个碰到末尾,要踢掉的元素就是 前一个指针的后一位。这周 review 暂停了,参加了水滴阅读一个活动,每天花十分钟,100 天阅读几本全英著作,水平太次,我还是从童话开始 :-)
本周算法题 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 也能做成一本小册,这真是不要太赚。
不管怎么样,内容付费是大趋势,而历史总是波动中前进,加油,掘金。
碎碎念
记录一些所思所想,写写科技与人文,写写生活状态,写写读书心得,主要是扯淡和感悟。 欢迎关注,交流。
微信公众号:程序员的诗和远方
公众号ID : MonkeyCoder-Life
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Blockchain Basics
Daniel Drescher / Apress / 2017-3-16 / USD 20.99
In 25 concise steps, you will learn the basics of blockchain technology. No mathematical formulas, program code, or computer science jargon are used. No previous knowledge in computer science, mathema......一起来看看 《Blockchain Basics》 这本书的介绍吧!