算法记录,每日一题_无重复字符串03

题目

首先还是最原始的自己思考解决方法。。

思路就是,遍历+校验是否有重复+递归,效率低下,惨不忍睹。不过是自己思考的。

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    // 子串是相连的
    // 子序列是不相连
    if(s == ''){
        return 0;
    }
    var maxLength=1;
    var k = 0;
    for(var i=0;i<s.length;i++){
        var tempMax = 1;
        var tempList = [s[i]];
        k = i;
        function checkRepeat(list,value){
            for(var item of list){
                if(item == value){
                    return true;
                }
            }
            return false;
        }
        function checkNext(){
            k = k+1;
            if(s[k]){
                if(checkRepeat(tempList,s[k])){
                    // 有重复
                    if(tempMax>maxLength){
                        maxLength=tempMax;
                    }
                }else{
                    // 无重复
                    tempList.push(s[k]);
                    tempMax++;
                    if(tempMax>maxLength){
                        maxLength=tempMax;
                    }
                    checkNext()
                }
            }
        }
        checkNext();
    }
    return maxLength;
};

 

然后是标准答案是使用滑动窗口。

日历计划工程

需要增加一个工程,每日记录。现在用文章记录,感觉太长了就不方便,主要实现两个功能,每天有个白板一样的页面,记录内容。还有个展示全部Todo记录的列表。

。。。。。。发现谷歌日历其实已经满足使用了。可能用插件或者爬虫来处理数据 统计这部分。哎。。谷歌日历真香。。

日历填充。

首先是日历,类似,仿照google Calendar。

开发动机

-和谷歌日历的区别在于,定制化拖动模块,减少手工创建的繁琐。

-数据统计分析,比如说,每周,时间分布是怎么样的。

-就比如说,我可能计划了一周要干嘛。但是实际木有这么搞,或者突然心情大变,去做别的了。那么这个时间段估计就要修改。

-完成一个全栈项目,实现一套比较有意思的日历。

技术支撑

拖拽

https://interactjs.io/ 这个特别适合完成需求。

Vue.Draggable 拖拽,或者自己写原生拖拽。 https://juejin.im/post/5a169d08518825592c07c666

https://javascript.info/mouse-drag-and-drop

https://www.html5rocks.com/en/tutorials/dnd/basics/


时间,做了moment按需加载。

https://github.com/iamkun/dayjs 时间设置

-需要,设置好一些计划块,拖过去,存储。

前置条件,完成全栈开发教程,KOA或者egg.js后端,搞个数据库。

完成功能,首先我设定一些工作任务,然后大概给个时间,比如2小时,

需求细节

日期有,周,月两种模式。

周模式,左侧选择选定日期,右侧拖拽生成任务块,保存确认任务。属性,标题,Date,日月年,时分。分钟15分为一刻度。。说明,一句话。

生成后,点击显示浮窗,可以删除和编辑。

如果重叠,如此展示。基本上不会重叠,不考虑。如果时间重叠开始时间早的在底层,后续条目左侧缩短,悬浮其上。

跨天

 

月份展示,从周日算起,到周六。包含本月所有天数。

 

关于知识

虚度30岁,我觉得趁着还没老,需要思考下如何学习是最高效的。

关于学习,有本书叫做,《Learn more,study less》。听说中文翻译的不好,所以还没看。https://www.jianshu.com/p/0aca8e311f25 这里有个读书笔记。

我觉得学习的关键在于,第一记忆。记忆力作为一个轴,最左边是痴呆,最右边是过目不忘,像机器人。

笔记

拿博客当EverNote用下。。。毕竟专业版还是要点钱的。

记录下,如果看页面时间久了,可以看下视频,比如收藏的java。或者别的什么教学视频。科教也可以。

-服务器抽空要做一次快照备份。等折腾,后端的内容的时候可以搞一下。顺便把PHP版本升级了。然后优化一下主页。部署个新的Web服务器,java端或者golang。

https://www.cnblogs.com/chris-oil/p/8856020.html source-map

字节跳动内推http://dwz.date/asns


 

继续阅读“笔记”