
数据结构与算法
文章平均质量分 62
心中有光,不惧路长
这个作者很懒,什么都没留下…
展开
-
【zf-future03】解题思路
曼哈顿距离:化二维计算为一维原创 2022-07-10 10:29:21 · 159 阅读 · 0 评论 -
Java-HashMap按key(value)排序
先上代码:import java.io.*;import java.util.*;public class Main{ public static void main(String[] args) throws IOException{ HashMap<String,Integer> map=new HashMap<>(); map.put("zhangsan",1); map.put("lisu",2);原创 2022-04-23 21:16:07 · 1474 阅读 · 0 评论 -
java中的集合类型
文章目录前言java集合类型VectorBitSetStack前言之前逛牛客网时得知校招或者暑期实习面试会问一些 基础 的问题,比如“java的集合类型”,但我发现我还不懂,刚好最近在看《thinking in java》一书,上面提到了这个问题,特此做个笔记,内容同时参考java8 api官方文档。java集合类型Vectorvector的译名是“向量”,我个人看到很多用c++写算法题的程序员在需要用到类似动态数组的思想的时候都会用vector,其实在java里面ArrayList类会是更好的原创 2022-02-20 11:07:20 · 248 阅读 · 0 评论 -
【蓝桥】算法真题【二】
文章目录后缀表达式括号序列砝码称重输入格式输出格式数据范围输入样例:输出样例:回文日期注意输入格式输出格式数据范围输入样例:输出样例:成绩分析特殊日期输入格式输出格式输入样例:输出样例:样例解释错误票据输入格式输出格式数据范围输入样例:输出样例:买不到的数目(数学定理)翻硬币(递推)输入格式输出格式数据范围输入样例1:输出样例1:输入样例2:输出样例2:带分数输入格式输出格式数据范围输入样例1:输出样例1:输入样例2:输出样例2:蚂蚁感冒输入格式输出格式数据范围输入样例1:输出样例1:输入样例2:输出样例2原创 2022-02-03 10:12:34 · 2381 阅读 · 0 评论 -
【蓝桥】算法笔记真题篇(一)
历年真题杨辉三角题目:将杨辉三角的数按从上到下、从左到右的顺序排成一列。给定一个正整数N,请输出数列中第一次出现N是在第几个数?对20%的测试用例,1<=N<=10;对所有的测试用例,1<=N<=1000000000思路1:(该思路适合N较小的时候,如1<=N<=10)用二维数组构造杨辉三角,停止构造条件是当arr[i][j]==N相应题解如下:(是参照基础题 “类型4:二维数组”的代码改过来的)import java.util.Scanner原创 2022-01-23 23:44:25 · 679 阅读 · 0 评论 -
【蓝桥】做题笔记及心得总结(基础篇)
基础题类型1:考察数据类型方面的应用题目1:时间限制:1.0s 内存限制:512.0MB问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。【注意】 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有原创 2022-01-19 11:42:22 · 902 阅读 · 0 评论 -
【FCC】javascript_datastructure五道验收题思路及题解
题目1:题目概述:输入一串字符,判断其是否为回文(true or false)注意:这个回文是有要求的,从测试样例可以看出:字母的大小写不影响结果;在字母之间多一些下划线、空格、标点符号之类的不影响结果,这就需要对字符串进行处理。/[\W]/g是匹配除数字字符下划线外的其他字符,也就是不包括下划线,因此需要手动加上下划线,即:/[\W_]/g题解:function palindrome(str) { let sign=/[\W_]/g; let tmpstr=str.t原创 2022-01-11 23:17:30 · 334 阅读 · 0 评论 -
【FCC】javascript算法题闯关汇总(笔记)
算法题汇总:Sum All Numbers in a Range题目要求:sumAll([4,1]) should return 10 because sum of all the numbers between 1 and 4 (both inclusive) is 10.思路:将传入的数组中的元素提取出来,用高斯求和公式计算和sum=((a1+an)∗n)/2sum=((a1+an)*n)/2sum=((a1+an)∗n)/2解法:function sumAll(arr)原创 2021-12-30 19:53:16 · 543 阅读 · 0 评论 -
栈和队列的应用——回文数判断
前言用栈和队列实现回文数判断代码及易错点说明库函数调用及栈和队列相应结构体声明#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>typedef char DataType;//队列数据元素结构typedef struct node { DataType info; struct node *next;} QueueData;ty原创 2021-12-26 18:08:20 · 5867 阅读 · 1 评论 -
基本数据结构复习(链表、栈)
前言复习一下基本数据结构的基本操作代码单链表的创建、结点插入、删除操作#include <stdio.h>#include <stdlib.h>typedef struct Node* LinkList;typedef struct Node* PNode;struct Node { int data; PNode next;};LinkList createNULLlist() { LinkList H=(LinkList)malloc(size原创 2021-12-24 13:13:42 · 446 阅读 · 0 评论 -
排序算法一览(c语言实现)
前言本文主要介绍四大排序思想,详情看旁栏目录。先附上用于检验的主函数以及相关准备工作。#include <stdio.h>#include <stdlib.h>#define LeftChild(i) (2*(i)+1)#define cutoff (3)void print(int arr[],int N) { for(int i=0; i<N; i++) { printf("%d ",arr[i]); } printf("\n");}void原创 2021-12-15 22:56:26 · 1422 阅读 · 0 评论 -
二叉搜索树的创建、插入、遍历、删除
二叉搜索树本文主要记录自己完成学校课程布置的有关“二叉搜索树”的代码闯关题的代码和思路心得,部分内容有借鉴身边大佬,借鉴部分会有标注。二叉搜索树的结构体定义struct node{ int data ; struct node *lchild ,*rchild ;};typedef struct node *pTree;创建 插入结点 以及三种遍历方式/*1.创建一个二叉树结点,值为element*/ pTree createTreeNode(int e原创 2021-11-26 20:33:50 · 1408 阅读 · 2 评论 -
用递归时踩的坑——一定要给出结束条件
前言本人在大一上刚学程序设计时就已经初步接触了递归的概念,当时还用其完成过几道类似于求阶乘、斐波拉契数列之类的作业闯关题,但我发现时至今日,我已经在上数据结构与算法课程了,对递归依然似懂非懂,甚至多次因为忘记了设定结束条件而导致无法输出结果。现把比较典型的两道题抽出来记录一下,鞭策自己:下次一定要写递归结束条件!!!题目1:二叉树的创建及前中后序遍历输出#include <iostream>using namespace std;//此处如有需要则可以自行增加自己所需要的头文件/*-原创 2021-11-21 11:32:01 · 1535 阅读 · 0 评论 -
【freecodecamp】js基础学习总结
写在最前面:这是我个人学习过程中的随手记录,更多是写给自己看的,而且时间跨度比较大,内容的逻辑性、表述的准确性等等各方面还有所欠缺,希望能刷到这篇文章的小伙伴不要笑话。有发现错误也欢迎批评指正呀~大家一起学习,一起进步!js基础关于定义内容中带引号的字符串,两种方法在内容中的引号之前加 “\” 注意:!!!千万不要写成"/"用单引号定义,但是要注意引号匹配问题字符串更改不能只靠改变??(在js中这个叫Bracket Notation?不懂括号计法这个直译是什么意思)的第0个元素,要原创 2021-11-20 22:31:30 · 801 阅读 · 0 评论 -
【freecodecamp】Apply Functional Programming to Convert Strings to URL Slugs
一 我被这个关卡卡住的问题urlSlug(" Winter Is Coming") should return the string “winter-is-coming”.(即原字符串中的开头结尾的空格也要去掉)二 我的解决方案function urlSlug(title) {let tmp=title.toLowerCase().split(" ");let goal=tmp.filter(item=>item!=='').join("-");return goal;}三 思路原创 2021-11-20 21:53:00 · 364 阅读 · 0 评论 -
【freecodecamp学习笔记】where do I belong
一 题目Return the lowest index at which a value (second argument) should be inserted into an array (first argument) once it has been sorted. The returned value should be a number.二 代码function getIndexToIns(arr, num) { arr.push(num); arr.sort(function(a原创 2021-11-19 21:04:27 · 368 阅读 · 0 评论 -
【freecodecamp】Finders Keepers
题目Create a function that looks through an array arr and returns the first element in it that passes a ‘truth test’. This means that given an element x, the ‘truth test’ is passed if func(x) is true. If no element passes the test, return undefined.题解func原创 2021-11-18 11:38:09 · 207 阅读 · 0 评论 -
【freecodecamp】confirm the ending
前言判断字符串str是否由target字符串结尾可直接调用js中的endsWith(str)函数,如果是自己实现这个函数功能,代码如下:题解function confirmEnding(str, target) { let test=str.substr(str.length-target.length,str.length-1); if(test===target) return true; else return false;}confirmEnding("Bastian原创 2021-11-18 10:52:36 · 247 阅读 · 0 评论 -
自己写一个求幂算法(c语言版)
前言据说求幂算法和辗转相除法都可在密码学中得到应用。接下来是自己写的一个pow()算法。注:假设输入的数据都是int 型。代码#include <stdio.h>//本程序假定输入的数字数据类型为整型bool Isodd(int n){ if(n%2==0) return true; return false;}long int mypow(long int x,unsigned int n){if(n==0) return 1;if(Isodd(n)) ret原创 2021-09-20 19:11:50 · 836 阅读 · 0 评论 -
求最大子序列和的一种高效算法(比递归和两三重for循环暴力求解好)
前言谈及最大子序列和问题,很多朋友都会想到经典的“分而治之”思想,也会想用递归解决该问题。而接下来要谈到的第四种算法,比递归简单且更有效,用到了一些巧妙的数学思维。有兴趣的朋友可以往下看是不是也是你熟悉的一种解法。c语言实现代码#include <stdio.h>int MaxSubsequenceNum(const int arr[],int N)//N为数组长度 { int ThisSum,MaxSum,j; ThisSum=MaxSum=0; for(int i=0;i&原创 2021-09-20 15:40:01 · 2463 阅读 · 0 评论