数据结构
IWTSAMY
嘤嘤嘤
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
青蛙跳台阶
一、问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共需要多少种跳法。思路:首先考虑n等于0、1、2时的特殊情况,f(0) = 0 f(1) = 1 f(2) = 2 其次,当n=3时,青蛙的第一跳有两种情况:跳1级台阶或者跳两级台阶,假如跳一级,那么 剩下的两级台阶就是f(2);假如跳两级,那么剩下的一级台阶就是f(1),因此f(3)=f(2)+f(1) 当n = 4时,f(4) = f(3) +f(2),以此类推…可以联想到Fibonacci数列。 因此,可原创 2020-06-02 22:47:09 · 356 阅读 · 0 评论 -
二分查找求解立方根
•计算一个数字的立方根,不使用库函数输入:double 待求解参数返回值:double 输入参数的立方根,保留一位小数输入描述:待求解参数 double类型输出描述:输入参数的立方根 也是double类型示例1输入216输出6.0import java.util.*; public class Main{ // 使用二分查找算法 public static double getCubeRoot(double input) { doubl原创 2020-06-02 21:31:39 · 830 阅读 · 2 评论 -
24点运算
bool get(int a, int b, char& ops){ if(a+b == 24) {ops = '+';return true;} if(a-b == 24) {ops = '-';return true;} if(a*b == 24) {ops = '*';return true;} if(a != 0 && b%a == 0 && b/a == 24) {ops = '/';return true;} re.原创 2020-05-26 14:23:22 · 300 阅读 · 0 评论 -
长方体的摆放(递归)值得一看
一个长方体,长宽高分别为x,y,z,都为自然数。现在要把若干个相同的长方体摆成高为N的一根柱形体。每层摆1个,如果两种摆法的高度是一样的,则认为这两种摆法等价,所以每层只有三种摆法。求一共有多少种摆法。输入描述:第一行为一个数字N,N>=1且N<=100,表示要摆放的高度第二行为长方体的长宽高,x、y、z都为无符号整数,按升序排列。输出描述:摆法总数,已知该总数会小于10000000示例1输入105 6 7输出1设dp[i][j]为第i层,高度为j的方案数,那么第i原创 2020-05-25 21:31:54 · 1641 阅读 · 0 评论 -
最长回文子串
import java.util.*;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(scanner.hasNextLine()){ String s=scanner.nextLine(); System.out.println(l原创 2020-05-23 22:26:14 · 229 阅读 · 0 评论 -
最长不重复子串
public class Solution { public int lengthOfLongestSubstring(String s) { int n = s.length(); int ans = 0; for (int i = 0; i < n; i++) for (int j = i + 1; j <= n; j++) if (allUnique(s, i, j)) ans原创 2020-05-21 18:08:40 · 201 阅读 · 0 评论 -
二分查找
二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。二分法查找的思路如下:(1)首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。(2)如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤(1)的操作。(3)如果某一步数组为空,则表示找不到目标元素。二分法查找的时间复杂度O(logn)。非递归算法:function binarySearch(arr,key){ var low=0; //数组最小索引值原创 2020-05-20 15:29:48 · 171 阅读 · 0 评论 -
为什么数组查询比链表要快?而插入删除比链表效率低
问:为什么数组查询比链表要快?而插入删除比链表效率低已知:1、数据存储结构分为顺序存储、链接存储、索引存储、散列存储。2、数组属于顺序存储,用一段连续的内存位置来存储。3、链表属于链接存储,用一组任意的存储单元来存储,不要求物理上相邻。抽象:1、顺序存储可以想象成吃饭排队,每个人领的号都是按顺序来的,服务员只要喊号就里立即可以找到对应的人,新来的人都自动加到队尾,如果有人想插队,那么从他插队的位置后面所有的人都要挪动位置。2、链接存储可以想象成手拉手做游戏,每个人只知道自己手拉的是谁,想要找到原创 2020-05-15 07:10:48 · 1793 阅读 · 1 评论
分享