1.leetCode第三题
需要:
https://leetcode-cn.com/probl...
给定一个字符串 s ,请你找出其中不含有反复字符的最长子串的长度。
输出: s = "pwwkew"
输入: 3
解释: 因为无反复字符的最长子串是 "wke",所以其长度为 3。
请留神,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
function print(s) { let str = ""; let size = 0; for (let i = 0; i < s.length; i++) { if (str.includes(s[i])) { //拼接字符串的过程中将原来的str置空 而后再从新累加 str = str.substr(i + 1); } else { str += s[i]; //计算size的最大值 size = size < str.length ? str.length : size; } } return size; }
2.leetCode第四题
需要:
https://leetcode-cn.com/probl...
给定两个大小别离为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。
示例 1:输出:nums1 = [1,3], nums2 = [2]输入:2解释:合并数组 = [1,2,3] ,中位数 2
输出:nums1 = [1,2], nums2 = [3,4]输入:2.5解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5
示例 3:输出:nums1 = [0,0], nums2 = [0,0]输入:0
示例 4:输出:nums1 = [], nums2 = [1]输入:1
示例 5:输出:nums1 = [2], nums2 = []输入:2
function print(nums1, nums2) { let m = nums1.length - 1; let n = nums2.length - 1; let k = end = m + n + 1; while (m >= 0 && n >= 0) { if (nums1[m] <= nums2[n]) { nums1[k] = nums2[n]; n--; k--; } else { nums1[k] = nums1[m]; m--; k--; } } while (n >= 0) { nums1[k] = nums2[n]; k--; n--; } //以上是合并两个有序数组 nums1为合并之后的 //用来判断是否是一个整数 let middleStr = (end / 2).toString(); let middleIndex = Math.floor(end/ 2); //如果是小数例如[1,2,3,4] end=3/2=1.5 if (middleStr.includes(".")) { // (2 + 3) /2=2.5 return (nums1[middleIndex] + nums1[middleIndex + 1]) / 2; } else { //[1,2,3] middleStr为2/2=1 打印为2 return nums1[middleStr] / 1; } }