搜索插入位置(数组、二分查找)、买蛋(算法)、二叉树的前序遍历(栈、树)
【摘要】 搜索插入位置(数组、二分查找)给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 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解答:...
搜索插入位置(数组、二分查找)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 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);
}
}
本文内容到此结束了,
如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。
如有错误❌疑问💬欢迎各位大佬指出。
保持热爱,奔赴下一场山海。🏃🏃🏃
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)