js
皮皮猴我们走
这个作者很懒,什么都没留下…
展开
-
ios webview首次打开h5页面白屏时间过长问题
在index.html页面。原创 2024-01-02 11:22:10 · 789 阅读 · 0 评论 -
js监听复制增加相加的东西
/** 监听copy事件 */ document.addEventListener("copy",function(e){ //取消默认事件,才能修改复制的值 e.preventDefault(); //复制的内容 var copyTxt = `${window.getSelection(0).toString()}\n————————————————\n别偷着转载的我文章啊,小心律师函[/手动狗头]`; if(e.clipboardDat..原创 2021-09-03 16:16:04 · 298 阅读 · 0 评论 -
二叉树的三种遍历
1、二叉树的前序遍历:按照根节点->左子树->右子树的顺序访问二叉树var preorderTraversal = function(root) { var newObj = []; function traversal(root){ if(root!==null){ newObj.push(root.val); traversal(root.left); traversal(root.r原创 2021-03-17 18:53:50 · 182 阅读 · 0 评论 -
leetcode:面试题 01.08. 零矩阵
解题方案:var setZeroes = function(matrix) { let rows = new Set(), cols = new Set(); // 用set对象在存储,保证存储的唯一值 for (let row = 0; row < matrix.length; row++) { for (let col = 0; col < matrix[row].length; col++) { if (matrix[row][原创 2021-01-07 16:38:33 · 193 阅读 · 0 评论 -
leetcode:830. 较大分组的位置
解题方案:var largeGroupPositions = function(s) { var start=0,end=0; // 存储相同字符的始末位置 var arr =[]; for(let i=1;i<s.length;i++){ if(s[i]==s[i-1]){ //如果和前一个字符相同 end=i; // 更新结束位置 if(i==s.length-1&&i-start&g原创 2021-01-05 16:54:24 · 160 阅读 · 0 评论 -
leetcode:423. 从英文中重建数字
解题方案:var originalDigits = function(s) { let match = (char) => (s.match(new RegExp(char,'g')) || []).length ; let n0 = match('z'); let n2 = match('w'); let n8 = match('g'); let n6 = match('x'); let n3 = match('t') - n2 - n8;原创 2021-01-05 16:44:58 · 269 阅读 · 0 评论 -
leetcode:509. 斐波那契数
解题方案:他来了他来了 他带着最蠢的递归走来了var fib = function(n) { if(n==0) return 0 if(n==1) return 1 return fib(n-1)+fib(n-2)};原创 2021-01-05 16:19:07 · 140 阅读 · 0 评论 -
leetcode:49. 字母异位词分组
解题方案:var groupAnagrams = function(strs) { var arr = {}; for(let i=0;i<strs.length;i++){ let newStr = strs[i].split('').sort(function(a,b){ return a.charCodeAt() - b.charCodeAt() }).join(''); // 利用字符的ASCII码,将字符串进行排序,原创 2020-12-14 14:34:44 · 124 阅读 · 0 评论 -
leetcode:34在排序数组中查找元素的第一个和最后一个位置
解题方案:他来了,他带着最蠢的代码走来了var searchRange = function(nums, target) { if(nums.length==0){ // 特殊情况,数组为空 return [-1,-1]; } if(nums.length==1){ // 特殊情况,数组只有一项 if(nums[0]==target){ return [0,0]; }else{ re原创 2020-12-11 16:36:03 · 110 阅读 · 0 评论 -
leetcode:6. Z 字形变换
解题方案:var convert = function(s, numRows) { if(numRows==1||numRows>=s.length){ return s; } //1 let arr = new Array(numRows).fill('');//2 let down = true;//3 let index = 0;//4 for(let i=0;i<s.length;i++){ arr[in原创 2020-12-09 17:40:49 · 140 阅读 · 0 评论 -
leetcode:面试题 16.24. 数对和
解题方案:利用双指针,var pairSums = function(nums, target) { if(nums.length<2){ // 清除特殊情况,null 空数组等 return []; } nums.sort(function(a,b){ // 对数组进行排序 return a-b; }) var left=0,right=nums.length-1; var newArr=[]; whil原创 2020-12-07 15:12:10 · 185 阅读 · 0 评论 -
leetcode 面试题 16.26. 计算器
解题方案 : var calculate = function(s) { let str = s.replace(/\s/g,""); //去掉字符串中的空格,方便处理 let total = 0; let newArr = []; let string = ''; for(let i=0;i<str.length;i++){ // 处理字符串,把符号和数字分开形成数组原创 2020-12-03 15:41:43 · 177 阅读 · 0 评论 -
leetcode 22题:括号生成
解题方案:var generateParenthesis = function(n) { let res = []; function getArr(str,left,right){ if(str.length>=2*n){ res.push(str); return res; } if(left<n){ getArr(str+'(',left+1,right原创 2020-11-17 12:22:28 · 125 阅读 · 0 评论 -
leetcode 16题:最接近的三数之和
解题方案:var threeSumClosest = function(nums, target) { nums.sort(function(a,b){ return a-b; }); var minNum = nums[0]+nums[1]+nums[2]; for(let i=0;i<nums.length-2;i++){ let j=i+1; let z=nums.length-1; while(j原创 2020-11-13 17:25:59 · 191 阅读 · 0 评论 -
leetcode 4题: 寻找两个正序数组的中位数
解题方案:var findMedianSortedArrays = function(nums1, nums2) { var newArr=[]; // 首先把一些特殊情况排除掉:两个数字长度为0或者1的情况 if(nums1.length==1&&nums2.length==1){ return (nums1[0]+nums2[0])/2 } if(nums1.length==0&&nums2.length==0){原创 2020-11-13 16:07:16 · 157 阅读 · 0 评论 -
leetcode 922题: 按奇偶排序数组 II
解题方案: 利用新数组存储数据,双循环解决var sortArrayByParityII = function(A) { var len = A.length; var newArr = []; let j=0; for(let i=0;i<len;i++){ if(A[i]%2==0){ newArr[j]=A[i]; j=j+2; } } j=1; for(le原创 2020-11-12 11:20:48 · 123 阅读 · 0 评论 -
leetcode 20题:有效的括号
解题方案:var isValid = function(s) { if(s.length%2==1){ // 如果字符串的长度是奇数,那么不可能是有效的括号了 return false; } let arr=[]; // 暂时存储括号 let arr1=['(','[','{']; let arr2={ '(':')', '[':']', '{':'}', }; for(let i原创 2020-11-12 11:12:55 · 142 阅读 · 0 评论 -
leetcode 15题:三数之和,用时击败了5%,内存击败了5% 哈哈哈哈哈哈哈
解题方案:用时击败了5%,内存击败了5% 哈哈哈哈哈哈哈 var threeSum = function(nums) { var arr = new Set();// 用来给二维数组去重 nums.sort(function(a,b){return a-b}); // 给原数组排序 for(let i=0;i<nums.length-2;i++){ if(nums[i]>0) break; // 当最小项已经>0时,就可以跳出循环原创 2020-11-09 16:56:46 · 206 阅读 · 0 评论 -
leetcode 937题:最接近原点的 K 个点
解题方案:var kClosest = function(points, K) { var newArr = [], result=[]; points.map(function(item,index){ newArr.push({ index: index, area: Math.pow(Math.abs(points[index][0]),2)+Math.pow(Math.abs(points[index][1]),2)原创 2020-11-09 10:42:28 · 162 阅读 · 0 评论 -
leetcode1356题:根据数字二进制下 1 的数目排序
解题方案:var sortByBits = function(arr) { var getOneLen = function(str){ return str.split('1').length-1 }; var newArr = []; arr.map(function(item,index){ newArr.push({key:item,value: item.toString(2)}) }) newArr.sort(fu原创 2020-11-06 13:23:29 · 118 阅读 · 0 评论 -
leetcode35题:搜索插入位置
1、利用循环暴力搜索:解题方案:var searchInsert = function(nums, target) { for(let i=0;i<nums.length;i++){ if(nums[i]>=[target]){ return i } } return nums.length};2、利用二分查找算法:解题方案:var searchInsert = function(nums, targe原创 2020-11-05 18:35:30 · 163 阅读 · 0 评论 -
leetcode326:3的幂,342题:4的幂
解题方案:笨递归var isPowerOfThree = function(n) { if(n==1){ return true; } if(n<1){ return false } var n = n/3; return isPowerOfThree(n)};解题思路:用传入的整数一直除以3,知道结果小于等于1,等于1就是3的幂,小于1就不是;...原创 2020-11-03 17:54:25 · 143 阅读 · 0 评论 -
leetcode349题:两个数组的交集
解题方案:var intersection = function(nums1, nums2) { let arr = []; for(let i=0;i<nums1.length;i++){ if(arr.indexOf(nums1[i])==-1){ if(nums2.indexOf(nums1[i])>=0){ arr.push(nums1[i]) } }原创 2020-11-03 17:13:11 · 92 阅读 · 0 评论 -
leetcode941题:有效的山脉数组
解题方案:var validMountainArray = function(A) { // 处理特殊情况,数组长度小于2 或者从一开始就下降的排除 if(A.length<3||A[0]>A[1]){ return false } var max = 0; var newArr = []; for(let i=0;i<A.length-1;i++){ if(A[i]==A[i+1]){原创 2020-11-03 11:25:51 · 122 阅读 · 0 评论 -
leetcode11题:盛最多水的容器
1、暴力解法: var maxArea = function(height) { let max = 0; for(let i=0;i<height.length;i++){ for(let j=height.length-1;j>i;j--){ let area = height[i]>height[j]?height[j]*(j-i):height[i]*(j-i)原创 2020-10-30 11:31:31 · 180 阅读 · 0 评论 -
leetcode463题:岛屿的周长
解题方案:var islandPerimeter = function(grid) { let num = 0; let border = 0; for(let i=0;i<grid.length;i++){ var newARR = grid[i]; for(let j=0;j<newARR.length;j++){ if(newARR[j]===1){ num++;原创 2020-10-30 10:47:40 · 180 阅读 · 0 评论 -
leetcode129题求根到叶子节点数字之和
解题方案:var sumNumbers = function(root) { var num = 0; function addNum(node,num){ if(node==null){ return 0; } var newNum = parseInt(num +'' + node.val); if(node.left==null&&node.right==null){原创 2020-10-29 12:06:47 · 170 阅读 · 0 评论 -
leetcode3题:无重复字符的最长子串
解题方案:var lengthOfLongestSubstring = function(s) { const newArr = s.split(''); var arr=[],maxLen=0; for(let i=0;i<newArr.length;i++){ var index = arr.indexOf(newArr[i]); arr.push(newArr[i]); if(index==-1){原创 2020-10-28 16:21:31 · 125 阅读 · 0 评论 -
leetcode1207题:独一无二的出现次数
解题方案:var uniqueOccurrences = function(arr) { const newMap = new Map(); for(let i=0;i<arr.length;i++){ if(newMap.has(arr[i])){ newMap.set(arr[i],newMap.get(arr[i])+1); }else{ newMap.set(arr[i],1);原创 2020-10-28 15:25:24 · 372 阅读 · 0 评论 -
VUE监听对象数组中每一个对象属性的改变
在watch中监听:这个数组 'weekTimeArray': { // 监听的对象数组 handler(newValue, oldValue) { // 进行你的操作 }, deep: true }原创 2020-09-25 20:01:55 · 4235 阅读 · 0 评论 -
js兼容安卓和IOS的复制文本到剪切板
js兼容安卓和IOS的复制文本到剪切板 var input = document.createElement("input"); input.value = '13552515549'; document.body.appendChild(input); input.select(); input.setSelectionRange(0, input.value.length), docu原创 2020-09-25 19:56:35 · 425 阅读 · 2 评论 -
小程序canvas 绘制海报 保存到本地
wxml文件:<view class='poste_box' id='canvas-container' style="width:1500px"> <canvas canvas-id="myCanvas" style="width:1500px;height:2096px;" /></view><view class='wrapper_fuc'> <button style='background-color:#fff;' clas原创 2020-07-07 12:22:54 · 561 阅读 · 0 评论 -
根据年月周获取 当周的日期
在工作中碰到了一个需求,根据用户选择的年月以及当月的第几周,输出这周的开始日期与结束日期,在网上搜了一下,发现大家的第一周一般都是从第一个周一开始计算的,与我们从本月一号开始算第一周的需求不太一致,于是自己写了一个方法: // 获取指定月份的天数 function mGetDate(year, month){ var d = new Date(year, month, 0); return d.getDate();原创 2020-07-07 11:54:22 · 568 阅读 · 0 评论 -
H5判断打开的终端是什么
// 判断打开的终端是什么:QQ 微信 微博 以及其他 returnTerminal: function(){ var browser = { versions: function() { var u = navigato...原创 2019-08-14 19:57:51 · 1312 阅读 · 0 评论 -
三数之和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]解答: var threeSu...原创 2018-11-06 10:05:37 · 279 阅读 · 1 评论 -
判断一个数字(字符串)中特殊字符的出现次数
第一种方法:(将数字转化为字符串,再)将字符串分割为数组,循环判断数组的每一项是否为这个字符(以‘1’为例) function patch(num){ var s=num.toString(); var arr = s.split(''); var count = 0; for(var...原创 2018-11-09 11:39:08 · 2146 阅读 · 0 评论 -
判断一个字符串是否回文
function isPalindrome(s){ var arr=s.split(''); arr.reverse(); var newStr=arr.join(''); return newStr==s; }利用split()方法将字符串分割为数组,再利用reve...原创 2018-11-08 17:35:41 · 391 阅读 · 0 评论 -
JS/jquery获取iframe内部元素和ifame中获取外部元素
1、从外部获取iframe内部元素方法: js : window.frames['frame'].document.getElementById("imglist"); //frame为iframe的name值/ID值。 jq : $(window.frames['frame'].document.getElementById("imglist")); //frame为iframe的n...转载 2019-03-01 14:33:29 · 6301 阅读 · 0 评论 -
JavaScript 用到的一些常用方法总结
1、判断两个对象是否相等 different(obj1,obj2){ var o1 = obj1 instanceof Object; var o2 = obj2 instanceof Object; if(!o1 || !o2){ return obj1 === obj2; } if(...原创 2019-04-10 14:33:04 · 250 阅读 · 0 评论 -
js移动端页面判断左右滑动事件
实现原理:通过监听touchstart事件获取,初始的x轴、y轴坐标,在通过监听touchmove事件,获取结束时候的x轴、y轴坐标,他通过初始值与结束值比较,判断是左滑还是右滑。代码:var windowHeight = $(window).height(), $body = $("body"); $body.css("height", windowHeight); ...转载 2019-06-17 10:56:38 · 7872 阅读 · 0 评论