刷题
一只小奶狗
SCU Master
展开
-
【LeetCode39】组合总和
描述 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例 1: 输入: candidates = [2,3,6,7], target = 7, 所求解集为: [ [7], [2,2,3] ] 示例 2: 输入: candidates = [2,3,5], target =原创 2020-05-20 18:23:19 · 129 阅读 · 0 评论 -
【LeetCode34】在排序数组中查找元素的第一个和最后一个位置
描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: [3,4] 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: [-1,-1] 来源:力扣(LeetCode) 链接:https://leetcod原创 2020-05-20 18:00:40 · 95 阅读 · 0 评论 -
【LeetCode33】搜索旋转排序数组
假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度必须是 O(log n) 级别。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/search-in-rotated-sorted-array 著作权归领扣网络所有。原创 2020-05-20 17:48:47 · 110 阅读 · 0 评论 -
【剑指offer】复杂链表的复制
【题目描述】输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 【简单思路】 1、从旧链表中创建新链表,每个节点复制到其后面,暂不处理随机的节点; 2、创建新链表的随即节点的连接关系; 3、拆分新链表。 ...原创 2020-03-10 11:23:43 · 67 阅读 · 0 评论 -
【二叉树中和为某一值的路径】
【题目描述】输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 【简单思路】使用递归的方法 list.remove(list.size()-1); 使用了list这个列表来存储当前走过的节点,所以为了寻找新的路径,递归完返回上一次的时候要删除掉,这...原创 2020-03-10 09:52:06 · 75 阅读 · 0 评论 -
【剑指offer】二叉搜索树的后序遍历
【题目描述】输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 【简单思路】 二叉搜索树: 1.左孩子<根<右孩子; 2.BST的左孩子和右孩子都是BST 来源:牛客网 发现对于每一棵子树,它的根结点总是对应该子树的后序序列的最后一个数 那么,只需要不断地确定出左子树区间和右子树区间,并且判断:左子...原创 2020-03-09 17:58:14 · 75 阅读 · 0 评论 -
【剑指offer】从上到下打印二叉树
【题目描述】从上往下打印出二叉树的每个节点,同层节点从左至右打印。 【简单思路】借助队列,画图看,先进先出。注意包位置。 public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> re = new...原创 2020-03-09 16:53:11 · 71 阅读 · 0 评论 -
【剑指offer】栈的压入和弹出序列
【题目描述】 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 【简单思路】肯定要用栈,出栈值等于栈顶值,就出栈,最后判定栈是不是为空了,为空就全...原创 2020-03-09 16:16:35 · 80 阅读 · 0 评论 -
【剑指offer】包含min函数的栈
【题目描述】定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法 【简单思路】我还得思考一下,要注意pop的时候最小值的处理。 import java.util.Stack; public class Solution { private stati...原创 2020-03-09 15:56:15 · 65 阅读 · 0 评论 -
【剑指offer】二叉树镜像
【题目】操作给定的二叉树,将其变换为源二叉树的镜像。 简单思路:递归调用。 /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class S...原创 2020-03-09 11:20:01 · 90 阅读 · 0 评论 -
【剑指offer】树的子结构
【题目】输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) Note: 1、先写一个方法,传入两棵根节点值相同的树,判断tree1是否和tree2结构一样 2、再写一个方法来遍历大树,找到一个和小树根节点值相等的节点,以该节点和小树根节点的值为参数调用上面的方法即可 在这里插入代码片 ...原创 2020-03-09 11:10:58 · 65 阅读 · 0 评论