摘要: class CQueue { private Stack<Integer> inStack; private Stack<Integer> outStack; private int size = 0; public CQueue() { inStack = new Stack<>(); outSt 阅读全文
posted @ 2021-04-21 22:20 backTraced 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 待补充 阅读全文
posted @ 2021-04-21 22:18 backTraced 阅读(21) 评论(0) 推荐(0) 编辑
摘要: dfs构建二叉树 tricky的点在于:如何确定子树在数组中对应的起点和终点位置 1、首先确认左子树长度 leftlen = inStart - mid; 则 有 preOrder顺序: preStart + 1 → preStart + leftlen preStart + leftlen + 1 阅读全文
posted @ 2021-04-17 17:23 backTraced 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 1、不使用栈 public int[] reversePrint(ListNode head) { //先获取链表长度,创建对应长度数组 ListNode currNode = head; int len = 0; while(currNode != null){ len ++; currNode 阅读全文
posted @ 2021-04-17 16:46 backTraced 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 简单题 也可用array 关键在于举一反三 对于相同类型的题 考虑从末尾开始处理 class Solution { public String replaceSpace(String s) { //原地修改? //"" //qsdasdawd //we araehappy //we !@#!@# d 阅读全文
posted @ 2021-04-17 16:35 backTraced 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 阅读全文
posted @ 2021-04-17 16:14 backTraced 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 寻找重复数字 大致有两种不同版本: 1 给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。 2 找出数组中重复的数字。 在一个长度为 n 的数组 nums 阅读全文
posted @ 2021-04-17 15:59 backTraced 阅读(581) 评论(1) 推荐(0) 编辑
摘要: 78.子集 给你一个整数数组 nums ,返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。 示例 1: 输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] 示例 2: 输入:nums = [0] 输出:[[],[0 阅读全文
posted @ 2021-01-10 16:23 backTraced 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 题解 两道题都属于入门的dp题 但是304难度高一些 主要在于如何推导保存处理值 class NumArray { int[] dps; public NumArray(int[] nums) { dps = new int[nums.length]; if (nums.length == 0) r 阅读全文
posted @ 2021-01-02 18:15 backTraced 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。 提示: 如果存在多种有效的行程,请你按字符自然排序返回最小的行程组合。例如 阅读全文
posted @ 2021-01-02 18:12 backTraced 阅读(35) 评论(0) 推荐(0) 编辑