/*** @param {number[]} nums* @return {number[]}*/ function qsort(arr, left, right){let i = left;let j = right;let base = arr[i];if(left >= right){return;} else {while (i<j){while(arr[j]>base && i<j){//这两个的顺序都不能错;j--;}while(arr[i]<=base && i<j){i++;}if(i<j){let tmp = arr[j];arr[j]=arr[i];arr[i]=tmp;}}arr[left]=arr[i];arr[i] = base;qsort(arr,left,i-1);qsort(arr,i+1,right);} }var sortArray...
【js】Leetcode每日一题-数组异或操作 【题目描述】 给你两个整数,n 和 start 。 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。 请返回 nums 中所有元素按位异或(XOR)后得到的结果。 示例1: 输入:n = 5, start = 0 输出:8 解释:数组 nums 为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。"^" 为按位异或 XOR 运算符。示例2: 输入:n = 4, start = 3 输出:8 解释:数组 nums 为 [...
壹 ? 引 本题来自LeetCode26. 删除有序数组中的重复项,是一道简单题,题目描述如下:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 说明: 为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是...
壹 ? 引 本题来自LeetCode198. 打家劫舍,难度中等,也很有意思,是一道教小偷如何偷窃最大金额的题,题目描述如下:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。...
壹 ? 引 本题来自LeetCode 208. 实现 Trie (前缀树),难度中等,题目描述如下:Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。 请你实现 Trie 类: Trie() 初始化前缀树对象。 void insert(String word) 向前缀树中插入字符串 word 。 boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检...
壹 ? 引 今天的题目来自LeetCode179. 最大数,题目描述如下:给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。 示例 1: 输入:nums = [10,2] 输出:"210"示例 2: 输入:nums = [3,30,34,5,9] 输出:"9534330"示例 3: 输入:nums = [1] 输出:"1"示例 4: 输入:nums = [10] 输出:"10"提示:1 <= nums.length <= 100 0...
壹 ? 引 本题来自LeetCode263. 丑数,难度简单,题目描述如下:给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。 丑数 就是只包含质因数 2、3 和/或 5 的正整数。 示例 1: 输入:n = 6 输出:true 解释:6 = 2 × 3示例 2: 输入:n = 8 输出:true 解释:8 = 2 × 2 × 2示例 3: 输入:n = 14 输出:false 解释:14 不是丑数,因为它包含了另外一个质因数 7 。示例 4: 输入:n = 1 输出:true...
壹 ? 引 本来今天(2021.4.7)的每日一题是81. 搜索旋转排序数组 II,但今天工作很忙,下班人基本累个半死,题目别说按照二分法的思路做不出来,连题解看了会都没法沉下心去看,不过得到的信息是,本题属于另一道的变体,而且若先了解另一题,对于本题会有较大的帮助,想了想就还是先记录之前的题,题目来自LeetCode33. 搜索旋转排序数组,题目难度同样是中等,题目描述如下:整数数组 nums 按升序排列,数组中的值 互不相同 。 在...
壹 ? 引 本题来自Leetcode74. 搜索二维矩阵,虽然难度是中等,但如果站在做出来的角度,你会发现其实并不难,题目描述如下:编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1:输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3 输出:true 示例 2: 输入:matrix = [[1,3,5,7],[10,11,...
壹 ? 引 我在JS Leetcode 496. 下一个更大元素 I 更清晰的图解单调栈做法一文中,介绍了单调栈做法解决下一个更大元素的问题,比较巧的是这道题还有升级版,题目来自Leetcode503. 下一个更大元素 II,描述如下:给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个...
壹 ? 引 最近一周的工作压力很大...一周的时间一直在处理一个APP漏洞问题,因为项目三年无人维护,突然要改东西光是修改构建错误以及三方包依赖错误就花了三天时间= =。不过好在问题到已经结束尾,闲下来还是记录下最近的解题思路,本题来自LeetCode496. 下一个更大元素 I,难度属于简单,题目描述如下:给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。 请你找出 nums1 中每个元素在 nums2 中的下一个...
leetcode415 大数相加 题目 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。返回的形式是字符串 解法一:split+reverse+竖式加法 使用split将字符串分割成数组,并使用reverse进行数组翻转,进行竖式相加,注意进位。将每次个位数计算结果保存至结果数组中,最后翻转输出。 举个例子来描述处理过程: num1 "123459" ; num2 "123" 两个数组翻转后: num1 "954321" num2 "321" 此时个位对齐,直接相加,注意保存进位即可。...