- 博客(14)
- 收藏
- 关注
原创 算法练习 哈希表
题目地址:https://leetcode-cn.com/problems/two-sum/这题目一开始看的话感觉是可以直接双重for循环过的,然后想了一下有没有其他的办法,看了一些思路之后用了哈希表解决了这个问题。这一题因为最后要返回下标,因此不能只存值,得用键值对的形式存储,因此要用到map,又因为可以按照任意顺序输出答案,因此使用无序的unordered_map可以更为高效的获得答案。因为我们要获得两个整数加起来为目标值,我们可以首先把vector里面的值先存到unordered_map中,然.
2022-04-05 14:55:07 121
原创 STL map以及一些stl的基本使用记录
map是一类关联式容器,增加和删除节点对迭代器影响很小,除了操作的那几个节点之外,对其他节点都没什么影响。下面总结几个知识点1、定义一般这样定义,前面是key后面是valuemap<int, string> mapStudent;map自带排序,不能不排序2、插入数据insert插入mapStudent.insert(pair<int, string>(1, "student_one")); 使用这一种插入,当map中有这个关键字的时候是插入不了的直接用数组
2022-03-31 19:47:01 95
原创 算法入门复习8【算法1-4】递推与递归
洛谷刷题记录P3612 [USACO17JAN]Secret Cow Code S原题地址:https://www.luogu.com.cn/problem/P3612一个类似于找规律的题目,刚开始没想到,看了题解之后才理解。因为n很大,所以肯定不是构造一个这么大的字符串,然后去数组里面查询,肯定是去发现一定的规律,然后直接在最初的字符串中指出来。只要当前的n在后半边,只需要先用n减去整个字符串长度的一半,就相当于从复制的字符串开始数多少多少个。因为复制的时候要先复制一个尾数,然后再从头开始,因此
2022-03-24 21:43:37 212
原创 算法入门复习7---递推
洛谷刷题记录P1990 覆盖墙壁原题目地址:https://www.luogu.com.cn/problem/P1990这题目我一开始是没想到递推公式的,开头我想到的是这题目应该可以递归调用去解决,使用一个参数代表还剩下多少块砖。但因为有两种砖头,因此不能简单的使用一个函数去表示,就得写两个函数,因为这个递归的返回值只有他本身的调用,因此直接使用递推更好。递推的公式我是结合了题解去思考的,我个人思考的感觉比较没有条理。其中f[n]代表了还剩下n块没有覆盖的下一步使用两角砖能有几种方法,g[n]就
2022-03-22 19:34:06 115
原创 算法入门复习6
洛谷刷题记录【算法1-4】递推与递归P1036 [NOIP2002 普及组] 选数原题目地址:https://www.luogu.com.cn/problem/P1036看到题目可以想到直接枚举就可以获得所有结果,一开始我想的有点复杂了,后来发现直接递归就可以过了。递归的思路就是直接先写一个函数,这个函数就是用来解决这个问题的,然后把特殊情况给写入,最后直接递归调用自己就可以获得解了。代码:#include<bits/stdc++.h>using namespace std;
2022-03-22 12:40:20 71
原创 算法入门复习5
洛谷刷题记录【算法1-4】递推与递归P1928 外星密码原题地址:https://www.luogu.com.cn/problem/P1928这题看到的时候感觉想不出来,想了记忆化和动规都想不出来,看了题解才知道就是直接递归就可以了。但是这题写起来也暴露出来了我的问题,那就是string类型的处理在很久没使用后变的很生硬了,也是改了很多次,最后用题解里的直接处理当前输入的字符来解决了,我自己本身是把整个输入之后再进行判断,但是那样就会更加复杂,并且中间出现小问题也会不好处理。代码:#inclu
2022-03-17 21:00:06 67
原创 算法入门复习4
洛谷刷题记录【算法1-4】递推与递归P1464 Function原题目地址:https://www.luogu.com.cn/problem/P1464题目说了一个递归函数,但是这个递归函数在数字较大时会花费非常多的时间,并且其中很多的情况都是重复运算。因此第一步先把这个题目模拟出来,在模拟的时候我犯了一个错,其中题目说了是a,b,c其中一个大于20则返回w(20, 20, 20),而我在写的时候不小心写成了 >= 导致了无限循环,我还没发现 模拟完之后进行记忆化搜索,只需要把已经运算过的结
2022-03-17 20:01:03 50
原创 算法入门复习3
洛谷刷题记录【算法1-4】递推与递归P1028 [NOIP2001 普及组] 数的计算拿到手之后思考,左边加上一个数字,然后继续进行操作,相当于把加上的那个数字的可能性加上,比如3这个数字在这个规则下有2种排列可能性,那么把3靠在6的左边之后,也就只剩下2种排列可能性了,那么只需要把0 — (n/2)数字的可能性全部求出来然后给到n就可以了。所以递推为 f[n] = f[n / 2] + f[n / 2 - 1] + f[n / 2 - 2] + … + f[1] + f[0];只需要从头一直按顺
2022-03-15 21:11:12 65
原创 算法入门复习2
洛谷刷题记录P1002 [NOIP2002 普及组] 过河卒简单动态规划,自己写第一遍用了我自己的习惯,先写一个函数递归解决这个问题,然后再去创建一个标记数组,标记每个点的数值,只要这个点的数值有被求出来过就直接使用,但是可能是程序中间有什么小漏洞,找不出来。于是看了别人的题解,使用数组存放,通过状态转移方程直接转移中间量,这样代码量一下就减少了很多,看起来更加清晰了,同时,直接把整个棋盘的x,y点加2,这样就不用再去判断马的点是否数组越界,省了很多的代码。因为每个点的可能性是右边和下面的可能性之合
2022-03-15 20:24:14 73
原创 算法入门复习
洛谷刷题记录P1044 [NOIP2003 普及组] 栈算是挺简单的一个动态规划题目,题目很长,但是实际上就是求一个栈在给定数字的情况下出栈的可能性总数。因为这题一看就可以暴力枚举所有可能得到答案,但时间可能会超,所以我估计是动态规划题目。但是因为太久没写过题目了,导致第一时间状态转移方程写错了。只需要去模拟栈,用一个f(n, m),其中n代表栈里面还有多少数字,m代表剩下多少数字没放进去,然后定义一个函数,带入n,m直接计算,m=0时就结束了,就返回1,m!=0时且n=0,返回f(1, m - 1
2022-03-13 21:52:12 1141
原创 rust学习笔记-hello_world()
1.rust程序后缀名为:.rs文件命名规范:多个单词之间用 _ 分割2.编译:在命令行中运行rustc test.rs其中test为文件名运行:在命令行中输入.\main.exe( .\表示当前层目录 …\表示上一层目录 …\表示上两层目录 )3.4....
2021-05-29 17:10:02 194
原创 Unity为物体施加力笔记
Unity为物体施加力笔记一个小游戏的Player的一些代码个人的理解笔记using UnityEngine;public class Player : MonoBehaviour{ public Rigidbody rb;/*获得一个物体的rigidbody组件,使其可以在这个script 中可以使用。*/ //定义三个方向的力的大小 public float forwardforce = 1000f; public float Upforce = 1000f
2021-03-14 21:38:14 3075
原创 Unity学习笔记
Unity学习笔记学习一下unity,随便记录一些学到的东西物理组件Rigidbody给一个游戏中的物体添加Rigidbody刚体组件,使物体具有物理性质,检测物理碰撞。刚体在各种物理状态影响下运动,刚体的属性包含 Mass(质量)、Drag(阻力)、Angular Drag(角阻力)、Use Gravity(是否使用重力)、Is Kinematic(是否受物理影响)、Collision Detection(碰撞检测)等。关于Rigidbody在代码中的引用:using System.Colle
2021-03-14 11:49:08 313
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人