搜索插入位置(数组二分查找)买蛋(算法) 二叉树的前序遍历(栈树)
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);
以上是关于搜索插入位置(数组二分查找)买蛋(算法) 二叉树的前序遍历(栈树)的主要内容,如果未能解决你的问题,请参考以下文章
算法总结:左神—利用二分查找思想:完全二叉树节点数,求一个整数k的N次方