
算法
坚持写博客!
这个作者很懒,什么都没留下…
展开
-
6-JavaScript-剑指offer-字符流中第一个不重复的字符
题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。 方法一(能够通过牛客网检验的) 使用哈希表(作者本人只是照猫画虎,对于哈希表还需要深入学习) let map =...原创 2020-04-19 22:01:38 · 215 阅读 · 0 评论 -
6-JavaScript-剑指offer-表示数值的字符串
题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。 //s字符串 function isNumeric(s) { // write code here return Number...原创 2020-04-19 12:13:42 · 252 阅读 · 0 评论 -
5-JavaScript-剑指offer-矩形覆盖
分析: 当n=0时,rectCover(0) = 0; 当n=1时,rectCover(0) = 1; 当n=2时,rectCover(0) = 2; 当n=3时,rectCover(0) = 3; 当n=4时,rectCover(0) = 5; 当n=5时,rectCover(0) = 8; … 当为n时,rectCover(n) =rectCover(n-1)+rectCover(n-2) ;...原创 2020-04-18 23:45:15 · 197 阅读 · 0 评论 -
5-JavaScript-剑指offer-变态跳台阶- 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 分析: 当n=0时,f(0) = 0; 当n=1时,f(1) = 1; 当n=2时,f(2) = f(1) + 1 = 2 ✖ f(1); 当n=3时,f(3) = f(2) + f(1) + 1 = 2 ✖ f(2); 当n=4时,f(4) = f(3) + f(2) + f...原创 2020-04-18 23:02:28 · 386 阅读 · 1 评论 -
4-JavaScript-剑指offer-数组中重复的数字
题目 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 代码: function duplicate(numbers, duplication) { // write cod...原创 2020-04-17 23:26:19 · 120 阅读 · 0 评论 -
4-JavaScript-剑指offer-把字符串转换成整数-将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
方法一:直接使用字符串转化为数字的方法 function StrToInt(str) { if(str == '-2147483649' || str == '2147483648') return 0; return Number(str) ? parseInt(str) : 0; //当str为不合法数值时,Number(str)的值为NaN,Boolean(NaN)...原创 2020-04-17 22:49:22 · 413 阅读 · 0 评论 -
3-JavaScript-剑指offer-不用加减乘除做加法(写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。)
题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 分析:考察的是用二进制的方式的进行加法运算 二进制值相加:101+111 第一步:相加各位的值,不算进位,得到010,二进制每位相加就相当于各位做异或操作,101 ^ 111。 第二步:计算进位值,得到1010,相当于各位做与操作得到101,再向左移一位得到1010,(101&111)<<...原创 2020-04-17 00:01:54 · 203 阅读 · 0 评论 -
2-JavaScript-剑指offer-替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 function replaceSpace(str) { return str.replace(/\s/g,'%20') } ...原创 2020-04-15 23:17:06 · 158 阅读 · 0 评论 -
2-JavaScript-剑指offer-构建乘积数组
题目描述 给定一个数组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]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n-2];) function multiply(array) { // ...原创 2020-04-15 23:11:13 · 182 阅读 · 1 评论 -
2-JavaScript刷算法-剑指offer-斐波拉契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 function Fibonacci(n) { if(n<=0) return 0; else if(n==1||n==2) return 1; else{ return Fibonacci(n-1)+Fibonacci(n-2); } } ...原创 2020-04-15 22:37:34 · 167 阅读 · 0 评论 -
剑指offer-二维数组的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 方法一:二分查找 思路:其实就是将每一行都当作是有序的一维数组进行二分查找,然后遍历每一行,代码如下: public class Solution { public boolean Find(int...原创 2020-04-11 11:28:32 · 119 阅读 · 0 评论 -
微众银行4.8笔试题 动态规划分礼物
分礼物 时间限制:C/C++语言 2000MS;其他语言 4000MS 内存限制:C/C++语言 131072KB;其他语言 655360KB 题目描述: 有n位小朋友去小明家里拜年,小明准备了m份礼物。小明想把所有礼物平均分给每个小朋友,每个小朋友得到相同个数的礼物。但是m未必能被n整除,小明可以使用以下两种操作任意多次(两种操作可以同时使用)。 1、 给其中一个小朋友发红包,收到红包的小朋友会...原创 2020-04-08 22:47:32 · 745 阅读 · 0 评论 -
LeetCode 合并两个有序链表
本人使用的方法是递归的方式写的,代码如下 package 链表学习; //两个有序列表的合并 public class merge { public static ListNode mergeTwoLists(ListNode l1, ListNode l2) { if (l1 == null) return l2; if (l2 == null) retur...原创 2020-02-21 23:43:33 · 106 阅读 · 0 评论 -
leetcode有效括号的判断
第一种方法:粗暴的使用if语句判断法,考虑的情况有好几个, ①输入的字符长度为0时直接返回true ②输入的字符长度为1时、输入的字符长度为奇数时直接返回false ③输入的字符串中最后一个字符为(或者{或者[时直接返回false 最后再讨论输入的字符为一般情况时的处理方式,遍历的方式是将参与循环的字符串第一次遍历到的()或者{}或者[]从字符串中剔除,再重新遍历直到所有满足()或者{}或者[]的...原创 2020-02-13 00:41:48 · 385 阅读 · 0 评论 -
leetcode罗马数转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12...原创 2020-02-10 17:37:06 · 130 阅读 · 0 评论 -
leetCode回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。 本人处理该题目的...原创 2020-02-09 21:59:29 · 123 阅读 · 0 评论 -
leetcode整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 直接上代码: package 简...原创 2020-02-09 12:13:00 · 91 阅读 · 0 评论 -
用java实现两数之和
题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 直接上代码吧...原创 2020-01-08 16:43:49 · 1116 阅读 · 0 评论