
算法题
WaNgLu:)
这个作者很懒,什么都没留下…
展开
-
判断一个链表是否为回文结构(JavaScript)
题目描述判断一个链表是否为回文结构。【题目】给定一个链表的头节点head,请判断该链表是否为回文结构。例如:1->2->1,返回true。1->2->2->1,返回true。15->6->15,返回true。1->2->3,返回false。方法1:将链表的每个节点都放入栈中,然后重新遍历链表,并且进行出栈操作,进行比较。 function isPalindrome1(head) { let sta...原创 2021-01-24 17:19:20 · 530 阅读 · 1 评论 -
旋转矩阵(力扣)
题目描述给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例 1:给定 matrix =[ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix =[ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3, 6, ...原创 2020-12-13 17:51:06 · 613 阅读 · 0 评论 -
跳台阶-使代码的运行时间提升了98.9%
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。示例1输入: 1返回值: 1示例2输入: 4返回值: 5解题思路:很明显,这道题就用简单的递归来实现。简单举例:跳上1级台阶有1种跳法,跳上2级台阶有2种跳法,跳上3级台阶有3种跳法,跳上4级台接有5种跳法。很显然fn ( n ) = fn( n - 1 ) + fn ( n - 2 ),有了这个式子,我们就可以用递归...原创 2020-11-22 19:58:53 · 212 阅读 · 0 评论 -
前端人前端魂,前端人必会的几种排序算法
前言自从上周被蓝桥杯国赛血虐之后,本人打算系统的学习一下算法题。今天给大家带来的是四种排序算法:冒泡排序 / 选择排序 /插入排序 / 归并排序1. 冒泡排序什么是冒泡排序:冒泡排序顾名思义就是整个过程像气泡一样往上升,单向冒泡排序的基本思想是(假设由小到大排序):对于给定n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行一轮比较和换位后,n个记录的最大记录将位于第n位,然后对前(n-1)个记录进行第二轮比较;重复该过程,直到记录剩下一个为.原创 2020-11-22 12:30:48 · 626 阅读 · 0 评论 -
第十一届蓝桥杯Java省赛第二场B组部分题解
本文章会讲解部分题解(因为有的题不会!!,太菜了),如果大家发现解答有问题,可以留言,大家一起讨论。试题A:答案:624 public static void main(String[] args) { // TODO Auto-generated method stub int a = 1; int count = 0; while (true) { String b = a + ""; for (int i = 0; i < b.length(); i+.原创 2020-10-18 17:25:21 · 14686 阅读 · 11 评论 -
第十一届蓝桥杯Java省赛原题(2020年)
第十一届蓝桥杯大赛软件类省赛第二场以上就是第十一届蓝桥杯java 省赛B组的试题,稍后会发布部分题解,欢迎大家一起讨论。祝大家可以取得一个好成绩,冲冲冲!!!!!...原创 2020-10-17 20:27:17 · 6018 阅读 · 5 评论 -
字符串转换整数 (力扣 8 )
题目描述请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不..原创 2020-08-11 11:19:10 · 207 阅读 · 0 评论 -
Z 字形变换(力扣6)
题目描述将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int ...原创 2020-08-06 15:44:30 · 403 阅读 · 0 评论 -
最长回文子串(力扣5)
题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"解题思路利用回文字符串的特点:正着读和反着读都是一样的,所以首先把s反转,利用i和j控制左右边界,不断从s中截取子字符串,这时需要理解反转字符串中对应i和j的关系,同时从反转字符串中进行截取,进行比较。max表示当前字符串的长度,如果新的子字符串.原创 2020-08-04 16:56:33 · 239 阅读 · 0 评论 -
最接近的三数之和(力扣16)
题目描述给定一个包括n 个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。解题思路:首先先对数组进行排序,排序之后方面后序操作。从0索引开始遍历数组,left为i+1,right为length-1。best来保...原创 2020-07-22 16:48:51 · 191 阅读 · 0 评论 -
在排序数组中查找元素的第一个和最后一个位置(力扣34)
题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(log n) 级别。如果数组中不存在目标值,返回[-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例2:输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1]解题思路题目中强调,时间复杂度必须是O(log...原创 2020-07-03 18:23:21 · 216 阅读 · 0 评论 -
搜索旋转排序数组(力扣33)
题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是O(logn) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], target = 0输出: 4示例2:输入: nums = [4,5,6,7,0,1...原创 2020-06-30 15:44:52 · 244 阅读 · 0 评论 -
盛最多水的容器
题目描述给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。示例:输入:[1,8,6,2,5,4,8,3,7]输出:...原创 2020-06-26 17:49:20 · 220 阅读 · 0 评论 -
两数相加------力扣
题目描述给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807解题思路:第一次看到这个题的时候,想到的是逐个...原创 2020-06-15 14:19:52 · 175 阅读 · 0 评论 -
搜索插入位置 ---- Java(二分查找)
题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0public static int searchInsert(int[] nums, int target.原创 2020-06-07 13:18:29 · 619 阅读 · 1 评论 -
最大子序和(贪心算法) ----- Java
题目描述给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。 public int maxSubArray(int[] nums) { int sum = 0; int max = nums[0]; for (int num : nums) { if (sum > 0) { su...原创 2020-06-07 10:56:21 · 690 阅读 · 0 评论 -
第十一届蓝桥杯校赛部分题解
第五题问题描述 小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成。 给定一个单词,请判断这个单词是否也是这种单词,如果是请输出yes,否则请输出no。 元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。输入格式...原创 2020-03-17 14:42:37 · 1430 阅读 · 0 评论 -
第十届蓝桥杯java省赛部分题解(适合新手)
以下题解只是个人的理解,如果发现答案有误或者有更简洁方式,望大家及时指出!! 部分题解自己还没有想到更好的方式去解答,如果有更好的解题方式会及时更新。试题A :组队------ 答案 490这道题没有必要使用代码进行解题,本题的坑主要在于一个人只能选择一次,只要认真审题,就可以解答出来。试题B :不同子串 public static void main(String[]...原创 2020-02-22 18:16:57 · 276 阅读 · 0 评论 -
Java算法题-------菱形的打印及扩展(实心菱形、空心菱形、字母菱形)
实心菱形输入一个正整数M(1<=M<=25),表示菱形的半径(直径就是2*M+1)输出以M为半径的菱形(如图)代码如下 public static void main(String[] args) { Scanner s= new Scanner (System.in); int M =s.nextInt();// 上半层 for(int i =...原创 2020-01-16 14:10:53 · 922 阅读 · 0 评论 -
螺旋矩阵
题目描述给定一个包含 m x n 个要素的矩阵,(m 行, n 列),写一个函数按照螺旋顺序,返回该矩阵中的所有要素。格式:输入依次输入两个整数 m 和 n,和一个 m x n 的整数数组,最后输出按照螺旋顺序返回的矩阵数组的元素。样例输入3 31 2 34 5 67 8 9样例输出1 2 3 6 9 8 7 4 5 public static...原创 2019-12-05 15:57:45 · 362 阅读 · 0 评论 -
多边形内角和
题目描述在欧几里德几何中,n边形的内角和是(n−2)×180°。小蒜蒜已经知道其中(n−1)个内角的度数,请编写一个程序,计算出剩下的一个未知内角的度数。输入格式第1行只有一个整数n(3≤n≤20)。第2行有(n−1)个正整数,是每个已知内角的度数。相邻两个整数之间用单个空格隔开。数据保证给定多边形合法。输出格式一个正整数,为未知内角的度数。...原创 2019-12-05 15:09:30 · 1463 阅读 · 0 评论 -
安全密码
题目描述网上流传一句话:"常在网上飘啊,哪能不挨刀啊~"。其实要想能安安心心地上网其实也不难,学点安全知识就可以。首先,我们就要设置一个安全的密码。那什么样的密码才叫安全的呢?一般来说一个比较安全的密码至少应该满足下面两个条件:密码长度大于等于8,且不要超过16(太长了自己容易忘记); 密码开头必须是大写字母; 必须至少包含一个小写字母; 必须至少包含一个数字; 必须至少包...原创 2019-12-05 15:08:11 · 2042 阅读 · 0 评论 -
字符串
题目描述一天蒜头君得到一个字符串,他把字符串的第i个字符串变成i个。例如字符串为"abc",蒜头君把字符串变成了"abbccc"。但是改完之后蒜头君忘记了原来的字符串,现在蒜头君想找你来还原。输入格式第一行输出一个整数n(1≤n≤100),表示这个字符串的长度。-第二行输入蒜头君改变后的字符串。输出格式输出蒜头君原来得到的字符串。输出时每行末尾的多余空...原创 2019-12-05 15:04:41 · 705 阅读 · 0 评论 -
统计数字字符个数
题目描述输入一行字符,统计出其中数字字符的个数。输入格式一行字符串,总长度不超过255。输出格式输出为1行,输出字符串里面数字字符的个数。输出时每行末尾的多余空格,不影响答案正确性样例输入Peking University is set up at 1898.样例输出4 public static void main(String[]...原创 2019-12-05 14:53:18 · 3562 阅读 · 0 评论 -
奇数求和
题目描述蒜术师:计算非负整数m到n(包括m和n)之间的所有奇数的和,其中,m不大于n,且n不大于300。例如m=3, n=12,其和则为: 3+5+7+9+11=35。输入格式两个数m和n,两个数以一个空格分开,其中0≤m≤n≤300。输出格式输出一行,包含一个整数,表示m到n(包括m和n)之间的所有奇数的和。输出时每行末尾的多余空格,不...原创 2019-12-05 14:52:10 · 2055 阅读 · 0 评论 -
整数奇偶排序
题目描述蒜术师给了你一个10个整数的序列,要求对其重新排序。排序要求:奇数在前,偶数在后; 奇数按从大到小排序; 偶数按从小到大排序。输入格式输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100输出格式按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。输出时每行末尾的多余空格,不影响答案正确性...原创 2019-12-05 14:49:49 · 1451 阅读 · 0 评论 -
矩阵加法
题目描述:输入两个n行m列的矩阵A和B,输出它们的和 A+B。输入格式第一行包含两个整数n和m,表示矩阵的行数和列数。1 ≤n ≤ 100, 1≤m≤100。接下来n行,每行m个整数,表示矩阵A的元素。接下来n行,每行m个整数,表示矩阵B的元素。相邻两个整数之间用单个空格隔开,每个元素均在11~10001000之间。输...原创 2019-12-05 14:46:16 · 2465 阅读 · 0 评论 -
史上最全的canvas详解及练习
canvas介绍1.什么是canvas(画布) -----canvas是HTML5新增的元素,可用于通过使用JavaScript中得到脚本来绘制图形 -----canvas看起来和<img>元素很像,唯一不同的就是他并没有src和alt属性。实际上,<canvas>标签只有两个属性:width和height -----&l...原创 2019-10-27 14:46:43 · 2171 阅读 · 0 评论 -
通过canvas变换达到的动画效果
学习了canvas的变换之后,就可以做出一个动画效果。通过定时器不断地改变画布坐标的旋转角度,并且对画布的元素进行缩放效果如下:代码<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style&...原创 2019-10-27 14:13:13 · 927 阅读 · 0 评论 -
搜狐畅游2019秋招笔试真题------------学数学
学数学题目描述数学老师正在教授小畅和小游两个人素数的概念。为了帮助巩固两人的知识,老师说出一个数,要求小游和小畅合作,每人说出一个素数,使得两人说出的素数的和刚好等于老师说出的数。请编写程序计算两个人说出的素数对的个数。如,老师说10,小畅和小游可以说出两对素数,分别为(5,5)和(3,7)输入描述输入包括一个整数n (3<=n<=1000)输出描述输出符合条件...原创 2019-10-14 19:28:24 · 447 阅读 · 3 评论 -
乐信2019秋招笔试真题-------------字符串距离
题目描述给定一个字符串str,和一个字母ch,请实现相应的代码求出一个数组,使数组中每个数字表示该位置与字母ch之间的最短距离。比如:str= “lexinfintech” ch=“i”则输出为:[3,2,1,0,1,1,0,1,2,3,4,5]输入描述:第一行为字符串第二行为字母输出描述:一个数字数组备注:假定所有输入的字符串的字符ch都在字符串str...原创 2019-08-29 11:53:21 · 341 阅读 · 0 评论 -
招行信用卡中心2019秋招笔试真题-----------字符串是否由子串拼接
题目描述给出一个非空的字符串,判断这个字符串是否由它的一个子串拼接构成的。例如,“abcabcabc”满足条件,因为它是由“abc”首尾拼接而成的,而“abcab”则不满足条件。输入描述非空字符串输出条件如果字符串满足上述条件,则输出最长的满足条件的子串;如果不满足条件,则输出false。输入样例abcabc输出样例abcpackage Test;...原创 2019-08-28 18:39:15 · 293 阅读 · 0 评论 -
美团点评2019秋招笔试真题-------------最长全1串(Java)
题目描述给你个01字符串,定义答案=该串中最长的连续1的长度,现在你有至多K次机会,每次机会可以将串中的某个0改成1,现在问最大的可能的答案。输入描述:输入第一行两个整数N,K,表示字符串长度和机会次数第二行输入N个整数,表示该字符串的元素输出描述:输出一行表示答案输入样例:10 21 0 0 1 0 1 0 1 0 1输出样例:5package ...原创 2019-08-15 20:35:40 · 1385 阅读 · 0 评论 -
百度2019秋招笔试真题----------混战世界
混战世界题目描述战乱年代,整个世界各个军阀的兵团混战,你是某军团的战略参谋,你手下有n(保证为3的倍数)个士兵,第i个士兵的物理攻击数值为Ai,魔法攻击数值为Bi,你需要将这些士兵三等分为三个连,第一个连需要去物理空间参加物理对抗战争,战斗力估值W1为士兵的物理攻击数值之和;第二个连需要去魔法空间参加对抗战争,战斗力估值W2为士兵的魔法攻击数值之和;第三个连需要去虚幻空间参加物理魔法兼备的...原创 2019-08-09 20:05:20 · 1027 阅读 · 0 评论 -
算法题---给定一个N*M的矩阵,在矩阵中每一块有一张牌,我们假定刚开始的时候所有牌面向上。现在对每个块进行如下操作:
题目描述给定一个N*M的矩阵,在矩阵中每一块有一张牌,我们假定刚开始的时候所有牌面向上。现在对每个块进行如下操作: 翻转某个块中的牌,并且与之相邻的其余八张牌也会被翻转。 xxx xxx xxx 如上矩阵所示,翻转中间那块时,这九块中的牌都会被翻转一次。 请输出在对矩阵中每一块进行如上操作以后,牌...原创 2019-07-21 11:13:27 · 1874 阅读 · 0 评论 -
乐信2019秋招笔试真题---------3数和
题目描述给定一个包括n个整数的数组nums和一个目标值target。找出nums中的三个整数,使得他们的和与targer最接近。返回这三个数组的和。假定每组输入只存在唯一答案。输入描述nums = [-1,2,1,-4] targer =1输出描述与targer最接近的三个数的和为2. (-1+2+1=2)输入样例[-1,2,1,-4]1输出样例2pa...原创 2019-07-30 12:00:28 · 724 阅读 · 0 评论 -
Java 字符串排序--------请对一组字符串进行排序,字符串由大小写字母和数字组成,需要满足一下比较规则
题目描述 请对一组字符串进行排序,字符串由大小写字母和数字组成,需要满足一下比较规则长度不同时,长度较短在排前面。 长度相同时,按照字典顺序排列(AaBb-Zz,0-9顺序),即大写字母在小写字母前,数字排在字母后。例:abc Abc 123 1 1bc CBD abcd a排序后结果为:a 1 Abc abc CBD 1bc 123 abcd代码如下...原创 2019-07-08 11:35:13 · 3947 阅读 · 0 评论