
算法题
ccf,华为机试,等
李有乾
劝君须惜少年时
展开
-
最长子序列DP和二分法
输入一串数字例如: 5 6 8 1 3 4 9输出最长递增子序列长度,示例中即 1 3 4 9 ,zui'da'chan原创 2021-06-18 20:36:07 · 4739 阅读 · 1 评论 -
层次遍历、中序遍历递归、非递归
层次遍历使用队列void LevelOrder(BiTree T){ Queue Q; Q.add(T); //加入根节点 while(!Empty(Q)){ Y =Q.remove(); // 移除队列头 System.out.println(Y.data);//访问 if(Y.leftchild...原创 2018-08-28 11:00:48 · 1125 阅读 · 0 评论 -
堆排序实现
sort(int[] arr){for(i=n/2-1;i--){从最后一个节点父节点开始,tiaozheng(i,arr,arr.length);//对i节点进行调整}现在成为了逻辑上的最大堆;for(j=n-1;j>0;j--){swap(arr[0],arr[j]);//最大的是arr[0],换到最后,在对第一个调整tiaozheng(0,arr,j...原创 2018-06-24 19:31:08 · 111 阅读 · 0 评论 -
迷宫栈
do{ if(当前位置可以通过){ 入栈当前位置; 判断当前是否到终点; 未到终点,选择一个方向上的下个位置成为当前位置; } else{ 出栈;判断是否四个方向都遍历完; 是则当前位置不可行,标记不通;再出栈栈顶元素新一轮判断; 没有选择另一方向继续; }}while(栈不为空)主要代码如下://type内保存当前位置的坐标和下一位置的方向class type{ int row; int c...原创 2018-04-02 13:39:47 · 685 阅读 · 0 评论 -
构造二叉树和层序遍历
package interview;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;class Main9 { public static List<.原创 2021-01-06 21:04:20 · 114 阅读 · 0 评论 -
24点
题目描述问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利输入:4个1-10的数字。[数字允许重复,但每个数字仅允许使用一次,测试用例保证无异常数字。输出:trueorfalseimport java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Exception { BufferedReader br =...原创 2021-01-01 12:46:40 · 161 阅读 · 0 评论 -
合唱队-最长子序列
题目描述计算最少出列多少位同学,使得剩下的同学排成合唱队形设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK,则他们的身高满足存在i(1<=i<=K)使得T1<T2<......<Ti-1<Ti>Ti+1>......>TK。所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。注意不许改变队列元素的先后顺序请注意处理多组输入输出!最长子序列问题先找到每一个位置i...原创 2021-01-01 10:24:03 · 138 阅读 · 0 评论 -
背包问题笔记和代码
笔试题碰到,遗忘了,在此再学习记录一下输入总金额zje和物品数量num、物品单价price、物品重要权重weight,求最大化价值value(每件物品单价*价值 求和) public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String in = ""; while ((in原创 2020-12-31 23:25:03 · 178 阅读 · 1 评论 -
扑克牌大小
题目描述扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):345678910JQKA2jokerJOKER输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如:4444-jokerJOKER。请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。基本规则:(1)输入每手牌可能是个子...原创 2020-12-30 20:24:13 · 1020 阅读 · 0 评论 -
机试题-走方格的方案数(递归)
请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。递归,因为只能下和右,所以一个点的方案是左点的方案和上点的方案加和。靠边的点方案只有一条路import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Except.原创 2020-12-29 20:12:43 · 436 阅读 · 0 评论 -
机试题-最小公倍数
import java.util.*;public class Main { public static void main (String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a * b / qiongju(a, b));.原创 2020-12-28 23:07:51 · 69 阅读 · 0 评论 -
字符串或整数反转
package String;import java.math.BigDecimal;public class reverse{ // string没考虑负数 public static String reverseString(String arr) { char[] charArray = arr.toCharArray(); int n = charArray.length - 1; for (int i = 0; i <= (n - 1) >> 1.原创 2020-10-26 12:49:46 · 134 阅读 · 0 评论