数据结构与算法
文章平均质量分 64
经典数据结构+算法+习题
lena7
这个作者很懒,什么都没留下…
展开
-
LCP 题集
文章目录LCP6:拿硬币声明:题、图源自Leecode:https://leetcode-cn.com/LCP6:拿硬币题目:解答:执行用时:0 ms ;内存消耗:35.8 MBclass Solution { public int minCount(int[] coins) { int sum=0; for(int i=0;i<coins.length;i++){ if(coins[i]%2==0) sum+=coi原创 2021-07-18 14:29:10 · 230 阅读 · 0 评论 -
Leecode面试题 题集
文章目录01.01:判定字符是否唯一02.01:移除重复节点10.01:合并排序的数组16.26:计算器17.10:主要元素声明:题、图源自Leecode:https://leetcode-cn.com/01.01:判定字符是否唯一题目:解答①:输入只有小写字母。执行用时 0 ms,内存消耗 36 MB。class Solution { public boolean isUnique(String astr) { if(astr.length()>26) retu原创 2021-07-18 14:28:04 · 293 阅读 · 1 评论 -
剑指offer 题集
文章目录剑指offer3:数组中重复的数字05:替换空格10-II:青蛙跳台阶12:矩阵中的路径15:二进制中1的个数22:链表中倒数第k个节点24:反转链表29:顺时针打印矩阵39:数组中出现次数超过一半的元素40:最小的k个数42:连续子数组的最大和47:礼物的最大价值50:第一个只出现一次的字母53 - II : 0~n-1中缺失的数字58-I:翻转单词顺序64:求1+2+...+n68:二叉树的最近公共父节点声明:题、图源自Leecode:https://leetcode-cn.com/剑指o原创 2021-07-18 14:26:03 · 275 阅读 · 1 评论 -
Leecode 题集
题目给定一个二进制数组, 计算其中最大连续 1 的个数。解答:class Solution { public int findMaxConsecutiveOnes(int[] nums) { int sum=0; for(int i=0;i<nums.length;i++){ if(nums[i]==1){ sum++; }else{ if(原创 2021-02-21 09:04:01 · 1169 阅读 · 0 评论 -
golang使用数组实现 数据结构队列
代码如下:/** * @Author: lena * @Date: 2021/9/23 16:32 * @Description: 用数组实现队列 * @Version: 1.0.0 */package data_structureimport ( "errors")type queue struct { start int end int size int // 数组大小 arr []int // 用数组模拟队列}// 创建原创 2021-09-23 21:52:52 · 209 阅读 · 0 评论 -
2021秋招遇到的笔试题 Java岗
文章目录YY直播0726:找到比输入的整数大的下一个水仙花数YY直播0726:找到比输入的整数大的下一个水仙花数水仙花数:可将整型数字每一位拆分开,将每一位求得m次方结果相加,等于原来的数字。例如:153=111+555+333,由当前每一位数的3次方组成;例如:9=9,由当前数的1次方组成。题目:输入n,查找大于n,且距离n最近的一位水仙花数。n是正整数且小于Integer.MAX_VALUE。思路:首先要确定每一位数,可能由各个数的几次方组成。经规律可以发现,每一位数由几次方组成与当前数的位数原创 2021-07-26 23:13:59 · 1470 阅读 · 0 评论 -
求整数n开m次平方的和
题目描述数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。输入描述:输入数据有多组,每组占一行,由两个整数n(n < 10000)和m(m < 1000)组成,n和m的含义如前所述。输出描述:对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。示例1输入81 42 2输出94.733.41解题代码public static void main(String[] args){ Scanner sc=new Scanner(Sy原创 2021-04-09 17:07:07 · 150 阅读 · 0 评论 -
蓝桥杯
问题描述小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。在冒泡排序中,每次只能交换相邻的两个元素。小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符, 则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。 例如,对于字符串 lan 排序,只需要 1 次交换。对于字符串 qiao 排序, 总共需要 4 次交换。 小蓝找到了很多字符串试图排序,他恰巧碰到一个字符串,需要 100 次交 换,可是他忘了吧这个字符串记下来,现在找不到了。请帮助小蓝找一个只包含小写英文字母且没有字母重.原创 2021-04-08 14:18:26 · 629 阅读 · 0 评论 -
动态规划算法:最大公共子序列
求字符串s1,s2中最长的公共子序列的长度,顺序必须保持一致。例如s1=abcfbc,s2=abfcab中最长的公共子序列的长度是4(abcb) //最长公共子序列 public static int longestPublishSubsequence(char s1[],char s2[]){ int len1=s1.length; int len2=s2.length; in...原创 2020-05-06 22:40:23 · 496 阅读 · 0 评论 -
动态规划算法:最大上升子序列详解
思路:将当前序列分解成一个个子问题,将每个子问题中的最右一个数作为当然子序列的终点,求出以此为终点的最大上升子序列的长度。最后将序列中每个元素作为终点的最大上升子序列长度进行比较,取最大值为解。 //最长上升子序列 public static int longestUpSubsequence(int sub[]){ int max[]=new int[sub.length]; //定义一...原创 2020-05-06 15:54:05 · 1041 阅读 · 1 评论 -
动态规划算法:数字三角形(附三种解题方式)
数字三角形:即由数字组成三边的三角形。例如:738810274445265问题:如何求解某点到底边所能获得的最大值路径。由于直接使用递归求解的话,时间复杂度过大O(2^n),会超时而无法计算,因此我们一般不采用递归。解决①:采用多一个二维数组,存储当前数值到结尾所能走的最大值,避免 同一个结果重复计算n次。 //数字三角形(递归思想+记忆数组避免运算重复) ...原创 2020-05-03 00:20:55 · 3689 阅读 · 0 评论 -
动态规划算法:背包问题
规则:1要求达到的目标为装入背包的总价值最大,并且重量不超出。2要求装入的物品不能重复。思路:设计一个二维数组,每一行表示物品(物品应从小到大排序),每一列表示背包的容量(从小递增)。进行设计时,应该将每一个物品从左到右计算,是否装入物品应考虑:1.物品重量是否超出,超出直接取上一位置的数值(因为上一位置的数值,已是背包所能装入的最大价值)。2.不超出时应该求当前物品装入后+空余空间所能装...原创 2020-05-02 22:57:53 · 221 阅读 · 0 评论 -
求1000以内的完数(完数:所有因子之和等于本身)
package homework;//求1000以内所有完数public class group2_13 {public static void main(String[] args) {System.out.println(“1000以内的完数有:”);wanshu();}public static void wanshu(){for(int i=1;i<1000;i++)...原创 2019-09-26 22:06:36 · 2707 阅读 · 0 评论 -
不死神兔
package lena11;import java.util.Scanner;//第20个月拥有的兔子数量public class lele{public static void main(String[] args){int[] a=new int[20];a[1]=a[2]=1;for(int i=3;i<a.length;i++)a[i]=a[i-1]+a[i-2]...原创 2019-07-14 14:54:11 · 154 阅读 · 0 评论 -
判断一个五位数是否是回文数
package lena11;import java.util.Scanner;public class lele{public static void main(String[] args){int i;Scanner scanner=new Scanner(System.in);System.out.println(“请输入一个五位数”);i=scanner.nextInt()...原创 2019-07-14 14:43:31 · 388 阅读 · 0 评论 -
查找100-1000的水仙花数
package lena11;public class lele{public static void main(String[] args){int ge,shi,bai;for(int i=100;i<1000;i++){shi=i/10%10;bai=i/100%10;ge=i%10;if(gegege + shishishi + baibaibai == i)S...原创 2019-07-14 10:43:06 · 935 阅读 · 0 评论