搜索插入位置(数组二分查找)买蛋(算法) 二叉树的前序遍历(栈树)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搜索插入位置(数组二分查找)买蛋(算法) 二叉树的前序遍历(栈树)相关的知识,希望对你有一定的参考价值。

搜索插入位置(数组、二分查找)

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1:

输入: [1,3,5,6], 5
输出: 2

示例 2:

输入: [1,3,5,6], 2
输出: 1

示例 3:

输入: [1,3,5,6], 7
输出: 4

示例 4:

输入: [1,3,5,6], 0
输出: 0

解答:

class Solution 
    public int searchInsert(int[] nums, int target) 
        int left = 0, right = nums.length - 1;
        if (target < nums[left])
            return 0;
        if (target > nums[right])
            return nums.length;
        while (left <= right) 
            int mid = (right - left) / 2 + left;
            if (target < nums[mid]) 
                right = mid - 1;
             else if (target > nums[mid]) 
                left = mid + 1;
             else 
                return mid;
            
        
        return left;
    

买蛋(算法)

100元怎么买100个蛋,鸡蛋1毛一个,鸭蛋3元一个,鹅蛋6元一个

解答:

public class Egg 
    public static void main(String[] args) 
        int chicken = 0, duck = 0, goose = 0;
        for (int i = 0; i < 100; i++) 
            chicken = i;
            for (int j = 0; j < 100; j++) 
                duck = j;
                goose = 100 - duck - chicken;
                if (chicken + duck * 30 + goose * 60 == 1000 && chicken > 0 && duck > 0 && goose > 0) 
                    System.out.println("鸡:" + chicken + "  鸭:" + duck + "  鹅:" + goose);
                
            
        
    

二叉树的前序遍历(栈、树)

给你二叉树的根节点 root ,返回它节点值的 前序_ _遍历。

示例 1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输入:root = [1,2] 输出:[1,2] 示例 5: 输入:root = [1,null,2] 输出:[1,2]

提示:

  • 树中节点数目在范围 [0, 100] 内
  • -100 <= Node.val <= 100

**进阶:**递归算法很简单,你可以通过迭代算法完成吗?

解答:

public class TreeNode 
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode(int x) 
        val = x;
    

class Solution 
    public List<Integer> preorderTraversal(TreeNode root) 
        List<Integer> resultList = new ArrayList<>();
        if (root == null) 
            return resultList;
        
        helper(resultList, root);
        return resultList;
    
    public void helper(List<Integer> resultList, TreeNode root) 
        if (root == null)
            return;
        resultList.add(root.val);
        helper(resultList, root.left);
        helper(resultList, root.right);
    

以上是关于搜索插入位置(数组二分查找)买蛋(算法) 二叉树的前序遍历(栈树)的主要内容,如果未能解决你的问题,请参考以下文章

数据结构和算法——二叉树

MySQL优化-索引

算法总结:左神—利用二分查找思想:完全二叉树节点数,求一个整数k的N次方

算法——二分搜索树

在路上---学习篇Python 数据结构和算法 二分查找二叉树遍历

挖掘算法中的数据结构:二分查找 和 二分搜索树(插入查找深度优先遍历)