刷题日记
文章平均质量分 86
小馋猫s
没有最好,只有更好!
展开
-
打卡LeetCode
2021.11.22784. 字母大小写全排列785. 模糊坐标**2021.11.23**93. 复原IP地址原创 2021-11-23 18:24:07 · 487 阅读 · 0 评论 -
我的刷题日记(25)
给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。var findMedianSortedArrays = function(nums1, nums2) { // 根据两个数组的总长度 判断是奇数还是偶数 let midIndex1; // 第一个中位数的位置 let midIndex2; // 第二个中位数的位置 let len = nums1.length+nums2.length; if (l原创 2020-11-27 15:53:46 · 145 阅读 · 0 评论 -
我的刷题日记(24)
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。var lengthOfLongestSubstring = function(s) { let resStr = ""; // 最长不重复字符 let targetStr = ""; // 用来做比较字符 let strLength = 0; for(let i = 0; i < s.length; i++) { if (targetStr.length > 0 &&原创 2020-11-26 20:19:35 · 157 阅读 · 0 评论 -
我的刷题日记(23)
给出两个 非空 的数组用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个位置只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的数组表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:[2, 4, 3] + [5, 6, 4]输出:[7, 0, 8]原因:342 + 465 = 807var addTwoNumbers = function(l1, l2) { // 找出最长的数组 let原创 2020-11-26 17:23:13 · 105 阅读 · 0 评论 -
我的刷题日记(22)
两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。暴力解法var twoSum = function(nums, target) { for(let i = 0; i < nums.length; i++) { for(let j = i+1; j < nums.length;j++) {原创 2020-11-24 10:33:57 · 151 阅读 · 0 评论 -
我的刷题日记(9)
题目描述输入一个链表,输出该链表中倒数第k个结点。思路:找出一共有多少个节点倒数第k个是正数第几个?function FindKthToTail(head, k){ if(head == null) { return null; } let p = head; let num = 0; while(p !== null) ...原创 2019-10-02 22:18:11 · 75 阅读 · 0 评论 -
我的刷题日记(8)
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。function reOrderArray(arr){ let left = []; let right = []; for(const item of arr) { item%...原创 2019-10-02 21:40:49 · 52 阅读 · 0 评论 -
我的刷题日记(7)
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0function Power(b, e){ let result = 1; let n = e; if(e<0) { n = -e; } for (let i =0 ; i...原创 2019-10-02 21:25:17 · 62 阅读 · 0 评论 -
我的刷题日记(6)
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。首先得清楚怎么求一个整数的二进制?什么是原码,反码,补码?比如用四位的二进制数表示1 ,则为0001正数的原码:第一位是0(符号位)表示正数0001负数的原码:第一位是1表示负数。1001正数的 : 原码 = 反码 = 补码负数的反码: 符号位不变其余取反。1变为0,0变为1。 1001 => 1110...原创 2019-09-21 21:21:00 · 105 阅读 · 0 评论 -
我的刷题日记(4)
2018年8月3日矩形覆盖 标题我们可以用21的小矩形横着或竖着去覆盖一个更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?假设n块矩形有F(n)种方法能铺满这个2*n的矩形,那么完成最后一步搭建可能是横着放,也有可能是竖着放。如下图,(1)横着放,那么剩下的未知放法的还剩下n-1块,那么就是F(n-1)种方法。(2)竖着放,那么旁边那块也必须得竖着放...原创 2019-08-04 00:16:21 · 112 阅读 · 0 评论 -
一道笔试编程题
1,输入一串以逗号隔开的单词字符串,打印出现次数最多的字母,和其所在的单词。比如输入:okcoin,orange,apple输出:o okcoin orange (以空格隔开)先把问题放在那儿,想一下,如果给我一串字符串,统计出现次数最多的字符,并且打印该字符该怎么做呢?function searchMaxCountStr(str){ if(str.length < 2){...原创 2019-07-17 23:09:57 · 152 阅读 · 0 评论 -
我的刷题日记(1)
前端菜鸟刷题1在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解析:拿到这个题我这样的菜鸟首先想到就是遍历//假设有这样的一个数组var array =[ [1,2,3], [4,5,6], [7,8,9] ] //使用遍历和数组API就...原创 2019-07-17 23:17:18 · 175 阅读 · 0 评论 -
一道JS训练题
1,以下代码的输出结果var foo = function f ( ) { return 23 ;}typeof f();//报错好吧!!这么简单的题我都选错了!!!我的理解是,这个题主要考察了函数的声明,在js里函数的声明方式就两种1)直接声明 function foo () { //......}2)函数表达式var foo = function () { //.....原创 2019-10-16 14:00:01 · 115 阅读 · 0 评论 -
我的刷题日记(2)
2019年7月29日斐波那契数列**题目描述: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0) n<=39**其实身为菜鸟的我不知道斐波那契数列是什么…尴尬原创 2019-07-29 19:02:12 · 158 阅读 · 0 评论 -
我的刷题日记(10)
题目描述输入一个链表,反转链表后,输出新链表的表头。思路:另q为前一个节点,p为当前节点反转链表p永远指向qtemp 为下一个节点function(head){ if(head === null) { retrun null; } let q = null; let p = head; let temp = null; while(p !== null) { ...原创 2019-10-03 00:12:08 · 65 阅读 · 0 评论 -
我的刷题日记(11)
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:将两个链表的每一项进行对比创建一个新的链表,将比较小的节点储存起来最后返回这个新的链表function ListNode(x){ this.val = x; this.next = null;}function Merge(pHead1, pHead2)...原创 2019-10-03 21:14:11 · 73 阅读 · 0 评论 -
我的刷题日记(21)
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路:两个for循环嵌套就能解决用count记录外层循环当前遍历项的的次数,一旦记录到次数大于length/2就退出function MoreThanHalfNum_S...原创 2019-10-11 17:29:12 · 81 阅读 · 0 评论 -
我的刷题日记(20)
题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。思路:根据题意,并不是从A0~An-1的乘积,之间缺少了Ai项,就把Ai项看成是1如下图:数组B每一项的值为每行的乘积。先求出1前面的乘积再求出1后面的乘积然后前后想乘function mu...原创 2019-10-09 16:57:57 · 145 阅读 · 0 评论 -
我的刷题日记(18)
题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0function StrToInt(str){ let arr = str.split(''); let huhao = ''; if(arr[0] === '+' || arr[0] === '-' ) { huhao = arr[...原创 2019-10-09 14:35:57 · 62 阅读 · 0 评论 -
我的刷题日记(19)
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。function duplicate(arr, duplication){ //这里要特别注意~找到任意重复的一...原创 2019-10-09 14:59:16 · 69 阅读 · 0 评论 -
我的刷题日记(17)
题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)思路:F(n) =1+2+3+…+n 看出 F(n) = F(n-1) + F(n)所以采用递归的方法就很简单&&的运算方法:只要“&&”前面是false,无论“&&”后面是true还是fals...原创 2019-10-09 11:08:10 · 163 阅读 · 0 评论 -
我的刷题日记(15)
题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一...原创 2019-10-06 00:54:44 · 126 阅读 · 0 评论 -
我的刷题日记(16)
题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张...原创 2019-10-05 21:44:44 · 100 阅读 · 0 评论 -
我的刷题日记(14)
题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?function Rev...原创 2019-10-05 17:40:09 · 223 阅读 · 0 评论 -
我的刷题日记(13)
题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!function LeftRotateString(str, n){ if(str ==...原创 2019-10-05 17:30:37 · 107 阅读 · 1 评论 -
我的刷题日记(12)
题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。方法一:思路:先找出数组中和等于sum的每一对,放在一个数组里。比如[[1,9],[2,8],[5,5]]然后找出乘积最小的那一对function FindNumbersWithSum(arr, sum){ let arr1 = [];...原创 2019-10-05 16:50:19 · 69 阅读 · 0 评论 -
我的刷题日记(3)
2019年7月30日旋转数组的最小数字题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素,例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出所有元素都大于0,若数组大小为0,请返回0。时间限制:3秒空间限制:32768K首先要弄清楚什么是非减排序数组:举例...原创 2019-08-02 10:39:09 · 191 阅读 · 0 评论