We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARTS,即:每周完成一个ARTS:每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章,至少坚持一年。(也就是 Algorithm、Review、Tip、Share 简称ARTS)。
本周算法题:3. 无重复字符的最长子串
问题描述:
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
思路分析:
1、遍历字符串。 2、找出不含重复的子串。这里复杂点如何查找不含重复的子串。考虑遍历字符串过程中,使用临时数组存储不含重复的子串。 3、如何下一个字符已存在临时数组中,截断临时数组,保留找相同字符之后的字符。 4、遍历存储临时数组长度,每次找到相同字符时,取当前临时数组长度和长度变量最大值。 5、遍历数组完成,返回长度变量。
算法实现:
/** * @param {string} s * @return {number} */ var lengthOfLongestSubstring = function(s) { var length = 0; var temp = []; if(s.length ==0){ return 0; } temp.push(s[0]); for(var i=1,l=s.length;i<l;i++){ if(temp.indexOf(s[i])!=-1){ if(temp.length > length){ length = temp.length; } temp = temp.slice(temp.indexOf(s[i])+1); temp.push(s[i]); }else{ temp.push(s[i]); } } if(temp.length > length){ length = temp.length; } return length; }; 时间复杂度:O(n) 空间复杂度:O(n)
理解github的流程
创建一个分支
确保主分支的任何内容都是可部署的。
创建新分支处理功能或者修复,名称应是描述性的,以便他人可以看到正在处理的内容。
添加提交记录
每个提交都应有提交描述,解释为什么进行更改。
每个提交都被视为一个单独的变更单元。如果发现错误方便回滚更改。
编写清晰的提交信息,可以更方便地让其他人跟进并提供反馈。
打开拉取请求
PR会启动有关你提交的讨论,它与Git仓库紧密集成,可以确切地看到请求将会合并哪些更改。
PR对于贡献开源项目和管理共享仓库很有用。
讨论并检阅你的代码
注意编码风格要和项目指南一致,添加单元测试。
部署
检查完PR通过测试后,你可以部署在生产环境来验证它。如果你的分支有问题,你可以将现有的主分支部署到生产中来回滚它。
合并
你的更改已在生产中得到验证,是时候将代码合并到主分支中了。
提交PR的时候可以将问题与代码相关联。合并Pull请求后,相关问题也将关闭。例如Closes #32
Closes #32
Javascript随机获取真假:
var random_boolean = Math.random() >= 0.5;
React Native性能优化
inline require
console.log
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Algorithm
本周算法题:3. 无重复字符的最长子串
问题描述:
思路分析:
算法实现:
Review
理解github的流程
创建一个分支
确保主分支的任何内容都是可部署的。
创建新分支处理功能或者修复,名称应是描述性的,以便他人可以看到正在处理的内容。
添加提交记录
每个提交都应有提交描述,解释为什么进行更改。
每个提交都被视为一个单独的变更单元。如果发现错误方便回滚更改。
编写清晰的提交信息,可以更方便地让其他人跟进并提供反馈。
打开拉取请求
PR会启动有关你提交的讨论,它与Git仓库紧密集成,可以确切地看到请求将会合并哪些更改。
PR对于贡献开源项目和管理共享仓库很有用。
讨论并检阅你的代码
注意编码风格要和项目指南一致,添加单元测试。
部署
检查完PR通过测试后,你可以部署在生产环境来验证它。如果你的分支有问题,你可以将现有的主分支部署到生产中来回滚它。
合并
你的更改已在生产中得到验证,是时候将代码合并到主分支中了。
提交PR的时候可以将问题与代码相关联。合并Pull请求后,相关问题也将关闭。例如
Closes #32
Tip
Javascript随机获取真假:
Share
React Native性能优化
inline require
按需加载模块。console.log
语句。The text was updated successfully, but these errors were encountered: