当前位置: 首页 > news >正文

如何利用源码做网站免费建立网站

如何利用源码做网站,免费建立网站,特斯拉ceo进厂拧螺丝,国外开源 企业网站第一阶段主要就是学习字符串的处理和二叉树的遍历。前一段时间学习了二叉树的遍历,记忆还比较深刻,这几个题还是比较轻松的做出来了;但是像Longest Palindromic Substring这样的题除了简单的字符串处理(回文判断)&…

第一阶段主要就是学习字符串的处理和二叉树的遍历。前一段时间学习了二叉树的遍历,记忆还比较深刻,这几个题还是比较轻松的做出来了;但是像Longest Palindromic Substring这样的题除了简单的字符串处理(回文判断),还要使用动态规划之类的算法,很久以前简单学习了一下动态规划,但一段时间不用很快就忘记了。这一题我尝试用暴力来解,但很容易就超时了。周末找个时间重新好好学习一下dp!

⚠️ 注:代码我都是用js写的,不是python!

DAY 1

3. Longest Substring Without Repeating Characters (medium)

String | Sliding Window + Hash Table

/*** @param {string} s* @return {number}*/
var lengthOfLongestSubstring = function(s) {let start = 0; // Start of the current windowlet maxLength = 0; // Maximum length of substring found so farconst map = {}; // Map to store the last index of each characterfor(let end = 0; end < s.length; end++) {const currentChar = s[end];// If the character is found in the map and is within the current window,// move the start to the next position after the last occurrence of currentCharif (map[currentChar] >= start) {start = map[currentChar] + 1;}// Update the last index of the current charactermap[currentChar] = end;// Update maxLength if the current window size is largermaxLength = Math.max(maxLength, end - start + 1);}return maxLength;
};

5. Longest Palindromic Substring (medium)

勉强通过的brute-force

/*** @param {string} s* @return {string}*/const isPalindrome = (s, l, r) => {for (let i = l, j = r; i < j; i++, j--) {if(s[i] !== s[j]) return false;}return true;
}
var longestPalindrome = function(s) {let longest = '';for (let start = 0; start < s.length; start++) {for (let end = start; end < s.length; end++) {let substr = s.substring(start, end + 1); if (isPalindrome(s, start, end) && substr.length > longest.length) {longest = substr;}}}return longest;
};

8. String to Integer (atoi) (medium)

晕 @_@ 好难cover所有testcase!

/*** @param {string} s* @return {number}*/
var myAtoi = function(s) {let i = 0, sign = 1, result = 0, INT_MAX = 2**31 - 1, INT_MIN = -(2**31);// Ignore leading whitespacewhile (s[i] === ' ') i++;// Handle signif (s[i] === '+' || s[i] === '-') {sign = s[i] === '+' ? 1 : -1;i++;}// Convert number and avoid non-digit characterswhile (i < s.length && s[i] >= '0' && s[i] <= '9') {result = result * 10 + (s[i] - '0');i++;}// Apply signresult *= sign;// Clamp to 32-bit signed integer rangeif (result < INT_MIN) return INT_MIN;if (result > INT_MAX) return INT_MAX;return result;
};

DAY 2

151. Reverse Words in a String (medium)

43. Multiply Strings (medium)

额(⊙﹏⊙),说实话没明白这题是啥意思。
不过题目说,Note: You must not use any built-in BigInteger library or convert the inputs to integer directly.
之后再仔细研究一下这题!

var multiply = function(num1, num2) {return (BigInt(num1) * BigInt(num2)).toString();
};

14. Longest Common Prefix (easy)

/*** @param {string[]} strs* @return {string}*/
var longestCommonPrefix = function(strs) {if (strs.length === 0) return "";for (let i = 0; i < strs[0].length; i++) {let c = strs[0][i];for (let j = 1; j < strs.length; j++) {if (strs[j].length <= i || strs[j][i] !== c) {return strs[0].slice(0, i);// return strs[0].substring(0, i);}}}return strs[0];
};

一点优化:先将strs 排序,然后直接选取第一个和最后一个比较。
时间复杂度:O( m ∗ n m*n mn) --> O( n l o g n + m nlog_n+m nlogn+m)

var longestCommonPrefix = function(strs) {if (strs.length === 0) return "";strs.sort();for (let i = 0; i < strs[0].length; i++) {let c = strs[0][i];if(strs[0][i] !== strs[strs.length-1][i]) {return strs[0].substring(0, i);}}return strs[0];
};

DAY 3

144. Binary Tree Preorder Traversal (easy)

const traversal = function (root, res) {if (root === null) return ;res.push(root.val);traversal(root.left, res);traversal(root.right, res);
};var preorderTraversal = function (root) {let res = [];traversal(root, res);return res;
};

94. Binary Tree Inorder Traversal (easy)

var inorderTraversal = function(root) {let res = [];traversal(root, res);return res;
};const traversal = function (root, res) {if (root === null) return;traversal(root.left, res);res.push(root.val);traversal(root.right, res);
};

102. Binary Tree Level Order Traversal (medium)

用队列,先进先出

const levelOrderTraversal = function(root, res, queue) {if(root === null) return [];queue.push(root);while(queue.length !== 0) {const length = queue.length; // the length of root array: 7let level = []; // store each level arrayfor(let i = 0; i< length; i++) {let node = queue.shift(); // take the first num, i.e. the root nodelevel.push(node.val); if(node.left) {queue.push(node.left);} if(node.right) {queue.push(node.right);}}res.push(level);}return res;
}var levelOrder = function(root) {let res = [], queue = [];levelOrderTraversal(root, res, queue);return res;
};

DAY 4

103. Binary Tree Zigzag Level Order Traversal (medium)

用层序遍历,然后隔一行翻转

var zigzagLevelOrder = function(root) {let res = [], queue = [];let zigzag = 1if(root === null) return [];queue.push(root);while(queue.length !== 0) {const length = queue.length;let level = [];for(let i = 0; i< length; i++) {let node = queue.shift();level.push(node.val); if(node.left) queue.push(node.left);if(node.right) queue.push(node.right);}if(zigzag === 1) {res.push(level);}else {res.push(level.reverse());}zigzag = -zigzag;}return res;
};

236. Lowest Common Ancestor of a Binary Tree (medium)

自底向上查找 -> 回溯 -> 后序遍历(左右中)

var lowestCommonAncestor = function(root, p, q) {function dfs(root, q, p) {if (root === q || root === p || root === null) return root;let left = dfs(root.left, q, p)let right = dfs(root.right, q, p)if(left !== null && right !== null) return root;else if(left !== null && right === null) return left;else if(left === null && right !== null) return right;else return null;}return dfs(root, q, p);
};

104. Maximum Depth of Binary Tree (easy)

层序遍历求层数,用dfs应该也能做…

var maxDepth = function(root) {let queue = [];let count = 0;queue.push(root);if (root === null) return count;while(queue.length !== 0) {let length = queue.length;for(let i =0; i < length; i++){let node = queue.shift();if(node.left) {queue.push(node.left);}if(node.right) {queue.push(node.right);}}count++;}return count;
};
http://www.yayakq.cn/news/317913/

相关文章:

  • dw做网站小技巧劲松网站建设
  • 聊城网站优化网络推广福田做网站需要多少钱
  • 最低价做网站企业网页
  • 网站和系统哪个好做删除wordpress首页链接
  • 网站注入木马飓风算法恢复的网站
  • 帮人做网站赚多少钱163邮箱注册
  • 网站黑色代码百度怎么做网站广告
  • 个人网站排行做网站留后门是怎么回事
  • 有什么做C语言的网站网上国网推广宣传语
  • 社区微网站建设方案ppt模板下载深圳办公室装修公司哪家好
  • 网站规划的基本内容有哪些网站被百度k
  • 璧山网站建设手机无法访问wordpress
  • 企业网站优化的方式搜索引擎优化步骤
  • 宁波海曙网站开发公司硬件开发学什么专业
  • 宁乡市建设局网站甘肃网站开发
  • 张家港网站建设公司网页打不开的一个解决方法
  • 南昌建设企业网站刚开始做写手上什么网站
  • 宝塔网站建设黑龙江网站建设公司
  • 东莞企创做网站怎么样wordpress theme generator
  • 济南建设质量协会网站上海专业做网站较好的公司
  • 在哪里建网站好app制作单位
  • 注册名字商标查询邱县seo整站排名
  • 河东做网站桥东企业做网站
  • 网站建设可行性研究wordpress添加前台登录
  • 淘宝网站可以做百度快照吗图片网站怎么做排名
  • 怎样手机网站建设免费制作网站
  • 做英语在线翻译兼职网站做网站设计答辩问题
  • 网站建设行业知乎全球做的比较好的网站有哪些
  • 做网站工作室名字建设企业网站需要注意的问题
  • 网站编程所用的语言有定制网站费用