
数据结构刷题
猫老壳
这个作者很懒,什么都没留下…
展开
-
二维数组中任一点出发能走的最长步数
解析:深度遍历,当索引无效时或者上下左右的数字都小于该值且k==0时,结束递归。不开辟额外空间记录遍历过的路径时,会超时。所以使用一个三维数组dp[i][j][k]记录已经遍历过的点。import java.util.*;public class Main { private static int[][] directions = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}}; public static void main(String[] args){.原创 2020-07-29 21:55:07 · 305 阅读 · 0 评论 -
猿辅导解压字符串问题
我的答案:思路很明显,就是用栈去模拟这个过程。import java.util.*;public class Main { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); while(scanner.hasNextLine()){ int n = scanner.nextInt(); scanne..原创 2020-07-27 20:32:20 · 269 阅读 · 0 评论 -
全排列问题
力扣46题给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]采用经典的回溯算法。回溯算法模板:result = []def backtrack(路径, 选择列表): if 满足结束条件: result.ad...原创 2020-03-23 15:13:20 · 237 阅读 · 0 评论 -
经典0-1背包问题(动态规划)
买糖果(京东2016实习生真题)题目描述某糖果公司专门生产儿童糖果,它最受儿童欢迎的糖果有A1、A2两个序列,均采用盒式包装。包装好的A1类糖果体积为一个存储单位,而包装好的A2类糖果体积正好是A1类的两倍。这两类糖果之所以广受儿童欢迎,是因为糖果中含有公司独家研发的魔幻因子。A1或A2序列中的糖果,看起来包装可能是一样的,但因为其中的魔幻因子含量不同被细分为不同的产品。临近传统节日,公司...原创 2020-03-18 11:47:43 · 256 阅读 · 0 评论 -
挖矿的游戏
小v最近在玩一款挖矿的游戏,该游戏介绍如下:1、每次可以挖到多个矿石,每个矿石的重量都不一样,挖矿结束后需要通过一款平衡矿车运送下山;2、平衡矿车有左右2个车厢,中间只有1个车轮沿着导轨滑到山下,且矿车只有在2个车厢重量完全相等且矿石数量相差不超过1个的情况下才能成功运送矿石,否则在转弯时可能出现侧翻。假设小v挖到了n(n<100)个矿石,每个矿石重量不超过100,为了确保一次性将n个...原创 2019-11-26 13:15:51 · 1531 阅读 · 0 评论 -
多条件约束的最大最小问题(涉及排列组合问题)
vivo校招题:小v是公司的运维工程师,现有一个有关应用程序部署的任务如下:1、一台服务器的磁盘空间、内存是固定的,现在有N个应用程序要部署;2、每个应用程序所需要的磁盘、内存不同,每个应用程序允许访问的用户数也不同,且同一个应用程序不能在一台服务器上部署多个。对于一台服务器而言,如何组合部署应用程序能够使得单台服务器允许访问的用户数最多?分析:题目有两个约束条件:①选择的m个程序的磁...原创 2019-11-25 09:18:50 · 1939 阅读 · 0 评论 -
排序算法
1、直接插入排序将数组分为一个有序数组和待排序数组,遍历待排序数组,将元素一个一个的插入到有序数组。private static void sort_arr(int[] arr){ if(arr == null || arr.length==0) return; //直接插入排序 for(int i=1; i<arr...原创 2019-11-24 13:46:01 · 103 阅读 · 0 评论 -
C++之最小堆、最大堆
#include<queue>#include<vector>std::priority_queue<int> big_heap; // 构造一个默认最大堆std::priority_queue<int, std::vector<int>, std::greater<int> > small_heap; //构造一个...原创 2019-07-03 20:23:04 · 4064 阅读 · 0 评论