当前位置: 首页 > news >正文

什么网站程序好app界面设计开题报告

什么网站程序好,app界面设计开题报告,合肥制作网页设计,什么是可信网站认证代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第六章 二叉树 part06 今日内容 ● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树 详细布置 654.最大二叉树 又是构造二叉树#xff0c;昨天大家刚刚做完 中序后序确定二叉树… 代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第六章 二叉树 part06 今日内容 ● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树 详细布置 654.最大二叉树 又是构造二叉树昨天大家刚刚做完 中序后序确定二叉树今天做这个 应该会容易一些 先看视频好好体会一下 为什么构造二叉树都是 前序遍历 题目链接/文章讲解https://programmercarl.com/0654.%E6%9C%80%E5%A4%A7%E4%BA%8C%E5%8F%89%E6%A0%91.html 视频讲解https://www.bilibili.com/video/BV1MG411G7ox 617.合并二叉树 这次是一起操作两个二叉树了 估计大家也没一起操作过两个二叉树也不知道该如何一起操作可以看视频先理解一下。 优先掌握递归。题目链接/文章讲解https://programmercarl.com/0617.%E5%90%88%E5%B9%B6%E4%BA%8C%E5%8F%89%E6%A0%91.html 视频讲解https://www.bilibili.com/video/BV1m14y1Y7JK 700.二叉搜索树中的搜索 递归和迭代 都可以掌握以下因为本题比较简单 了解一下 二叉搜索树的特性题目链接/文章讲解: https://programmercarl.com/0700.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E4%B8%AD%E7%9A%84%E6%90%9C%E7%B4%A2.html 视频讲解https://www.bilibili.com/video/BV1wG411g7sF 98.验证二叉搜索树 遇到 搜索树一定想着中序遍历这样才能利用上特性。 但本题是有陷阱的可以自己先做一做然后在看题解看看自己是不是掉陷阱里了。这样理解的更深刻。题目链接/文章讲解https://programmercarl.com/0098.%E9%AA%8C%E8%AF%81%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91.html 视频讲解https://www.bilibili.com/video/BV18P411n7Q4 往日任务 ● day 1 任务以及具体安排https://docs.qq.com/doc/DUG9UR2ZUc3BjRUdY ● day 2 任务以及具体安排https://docs.qq.com/doc/DUGRwWXNOVEpyaVpG ● day 3 任务以及具体安排https://docs.qq.com/doc/DUGdqYWNYeGhlaVR6 ● day 4 任务以及具体安排https://docs.qq.com/doc/DUFNjYUxYRHRVWklp ● day 5 周日休息 ● day 6 任务以及具体安排https://docs.qq.com/doc/DUEtFSGdreWRuR2p4 ● day 7 任务以及具体安排https://docs.qq.com/doc/DUElCb1NyTVpXa0Jj ● day 8 任务以及具体安排https://docs.qq.com/doc/DUGdsY2JFaFhDRVZH ● day 9 任务以及具体安排https://docs.qq.com/doc/DUHVXSnZNaXpVUHN4 ● day 10 任务以及具体安排https://docs.qq.com/doc/DUElqeHh3cndDbW1Q ●day 11 任务以及具体安排https://docs.qq.com/doc/DUHh6UE5hUUZOZUd0 ●day 12 周日休息 ●day 13 任务以及具体安排https://docs.qq.com/doc/DUHNpa3F4b2dMUWJ3 ●day 14 任务以及具体安排https://docs.qq.com/doc/DUHRtdXZZSWFkeGdE ●day 15 任务以及具体安排https://docs.qq.com/doc/DUHN0ZVJuRmVYeWNv ●day 16 任务以及具体安排https://docs.qq.com/doc/DUHBQRm1aSWR4T2NK ●day 17 任务以及具体安排https://docs.qq.com/doc/DUFpXY3hBZkpabWFY ●day 18 任务以及具体安排https://docs.qq.com/doc/DUFFiVHl3YVlReVlr ●day 19 周日休息 目录 0654_最大二叉树 0617_合并二叉树 0700_二叉搜索树中的搜索 0098_验证二叉搜索树 0654_最大二叉树 根据数组构造二叉树 ​​​​106.从中序与后序遍历序列构造二叉树105.从前序与中序遍历序列构造二叉树654.最大二叉树 package com.question.solve.leetcode.programmerCarl2._07_binaryTrees;public class _0654_最大二叉树 { }/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/ class Solution0654 {public TreeNode constructMaximumBinaryTree(int[] nums) {return compute(nums, 0, nums.length);}private TreeNode compute(int[] nums, int leftIndex, int rightIndex) {if (rightIndex - leftIndex 1) {//没有元素了return null;}if (rightIndex - leftIndex 1) {return new TreeNode(nums[leftIndex]);}int maxValue nums[leftIndex], maxIndex leftIndex;for (int i leftIndex 1; i rightIndex; i) {if (maxValue nums[i]) {maxValue nums[i];maxIndex i;}}TreeNode leftNode compute(nums, leftIndex, maxIndex);TreeNode rightNode compute(nums, maxIndex 1, rightIndex);return new TreeNode(maxValue, leftNode, rightNode);} }class Solution0654_2 {public TreeNode constructMaximumBinaryTree(int[] nums) {return constructMaximumBinaryTree1(nums, 0, nums.length);}public TreeNode constructMaximumBinaryTree1(int[] nums, int leftIndex, int rightIndex) {if (rightIndex - leftIndex 1) {//没有元素了return null;}if (rightIndex - leftIndex 1) {//只有一个元素return new TreeNode(nums[leftIndex]);}int maxIndex leftIndex;//最大值所在位置int maxVal nums[maxIndex];//最大值for (int i leftIndex 1; i rightIndex; i) {if (nums[i] maxVal) {maxVal nums[i];maxIndex i;}}TreeNode root new TreeNode(maxVal);//根据maxIndex划分左右子树root.left constructMaximumBinaryTree1(nums, leftIndex, maxIndex);root.right constructMaximumBinaryTree1(nums, maxIndex 1, rightIndex);return root;} }class Solution0654_3 {public TreeNode constructMaximumBinaryTree(int[] nums) {return construct(nums, 0, nums.length - 1);}public TreeNode construct(int[] nums, int left, int right) {if (left right) {return null;}int best left;for (int i left 1; i right; i) {if (nums[i] nums[best]) {best i;}}TreeNode node new TreeNode(nums[best]);node.left construct(nums, left, best - 1);node.right construct(nums, best 1, right);return node;} } 0617_合并二叉树 package com.question.solve.leetcode.programmerCarl2._07_binaryTrees;import java.util.LinkedList; import java.util.Queue; import java.util.Stack;public class _0617_合并二叉树 { }/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/ class Solution0617 {public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {if (root1 null) {return root2;}if (root2 null) {return root1;}QueueTreeNode queue new LinkedList();queue.offer(root1);queue.offer(root2);while (!queue.isEmpty()) {TreeNode node1 queue.poll();TreeNode node2 queue.poll();//此时两个节点一定不为空val相加node1.val node1.val node2.val;//如果两棵树左节点都不为空加入队列if (node1.left ! null node2.left ! null) {queue.offer(node1.left);queue.offer(node2.left);}//如果两棵树右节点都不为空加入队列if (node1.right ! null node2.right ! null) {queue.offer(node1.right);queue.offer(node2.right);}//若node1的左节点为空直接赋值if (node1.left null node2.left ! null) {node1.left node2.left;}//若node1的右节点为空直接赋值if (node1.right null node2.right ! null) {node1.right node2.right;}}return root1;}public TreeNode mergeTrees2(TreeNode t1, TreeNode t2) {if (t1 null) {return t2;}if (t2 null) {return t1;}TreeNode merged new TreeNode(t1.val t2.val);merged.left mergeTrees2(t1.left, t2.left);merged.right mergeTrees2(t1.right, t2.right);return merged;} }class Solution0617_2 {//递归public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {if (root1 null) return root2;if (root2 null) return root1;root1.val root2.val;root1.left mergeTrees(root1.left, root2.left);root1.right mergeTrees(root1.right, root2.right);return root1;}//使用栈迭代public TreeNode mergeTrees2(TreeNode root1, TreeNode root2) {if (root1 null) {return root2;}if (root2 null) {return root1;}StackTreeNode stack new Stack();stack.push(root2);stack.push(root1);while (!stack.isEmpty()) {TreeNode node1 stack.pop();TreeNode node2 stack.pop();node1.val node2.val;if (node2.right ! null node1.right ! null) {stack.push(node2.right);stack.push(node1.right);} else {if (node1.right null) {node1.right node2.right;}}if (node2.left ! null node1.left ! null) {stack.push(node2.left);stack.push(node1.left);} else {if (node1.left null) {node1.left node2.left;}}}return root1;}//使用队列迭代public TreeNode mergeTrees3(TreeNode root1, TreeNode root2) {if (root1 null) return root2;if (root2 null) return root1;QueueTreeNode queue new LinkedList();queue.offer(root1);queue.offer(root2);while (!queue.isEmpty()) {TreeNode node1 queue.poll();TreeNode node2 queue.poll();//此时两个节点一定不为空val相加node1.val node1.val node2.val;//如果两棵树左节点都不为空加入队列if (node1.left ! null node2.left ! null) {queue.offer(node1.left);queue.offer(node2.left);}//如果两棵树右节点都不为空加入队列if (node1.right ! null node2.right ! null) {queue.offer(node1.right);queue.offer(node2.right);}//若node1的左节点为空直接赋值if (node1.left null node2.left ! null) {node1.left node2.left;}//若node1的右节点为空直接赋值if (node1.right null node2.right ! null) {node1.right node2.right;}}return root1;} } 0700_二叉搜索树中的搜索 解决二叉树题目优先使用递归。递归法 1.确定递归函数的参数和返回值 2.确定终止条件 3.确定单层递归的逻辑。 package com.question.solve.leetcode.programmerCarl2._07_binaryTrees;import java.util.Deque; import java.util.LinkedList; import java.util.Stack;public class _0700_二叉搜索树中的搜索 { }class Solution0700 {//递归普通二叉树public TreeNode searchBST(TreeNode root, int val) {if (root null || root.val val) {return root;}TreeNode left searchBST(root.left, val);if (left ! null) {return left;}return searchBST(root.right, val);} }class Solution0700_2 {//递归利用二叉搜索树特点优化public TreeNode searchBST(TreeNode root, int val) {if (root null || root.val val) {return root;}if (val root.val) {return searchBST(root.left, val);} else {return searchBST(root.right, val);}} }class Solution0700_3 {//迭代普通二叉树public TreeNode searchBST(TreeNode root, int val) {if (root null || root.val val) {return root;}StackTreeNode stack new Stack();stack.push(root);while (!stack.isEmpty()) {TreeNode pop stack.pop();if (pop.val val) {return pop;}if (pop.right ! null) {stack.push(pop.right);}if (pop.left ! null) {stack.push(pop.left);}}return null;}public TreeNode searchBST2(TreeNode root, int val) {DequeTreeNode deque new LinkedList();deque.offer(root);while (!deque.isEmpty()) {TreeNode poll deque.poll();if (poll ! null poll.val val) {return poll;}if (poll.val val poll.right ! null) {deque.offer(poll.right);} else if (poll.val val poll.left ! null) {deque.offer(poll.left);}}return null;} }class Solution0700_4 {//迭代利用二叉搜索树特点优化可以不需要栈public TreeNode searchBST(TreeNode root, int val) {while (root ! null)if (val root.val) root root.left;else if (val root.val) root root.right;else return root;return null;} } 0098_验证二叉搜索树 package com.question.solve.leetcode.programmerCarl2._07_binaryTrees;import java.util.ArrayList; import java.util.List; import java.util.Stack;public class _0098_验证二叉搜索树 { }/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/ class Solution0098 {ListInteger list new ArrayListInteger();public boolean isValidBST(TreeNode root) {if (root null) {return true;}inOrder(root);//将 ArrayList 转换为 int 数组int[] intArray list.stream().mapToInt(Integer::intValue).toArray();for (int i 0; i intArray.length - 1; i) {if (intArray[i] intArray[i 1]) {return false;}}return true;//Object[] array1 list.toArray(); // ListInteger list2 list; // Collections.sort(list2); // if (list.toString().equals(list2.toString())) { // return true; // } else { // return false; // }}private void inOrder(TreeNode root) {if (root null) {return;}inOrder(root.left);list.add(root.val);inOrder(root.right);} }//使用统一迭代法 class Solution0098_2 {//使用统一迭代法public boolean isValidBST(TreeNode root) {StackTreeNode stack new Stack();TreeNode pre null;if (root ! null)stack.add(root);while (!stack.isEmpty()) {TreeNode curr stack.peek();if (curr ! null) {stack.pop();if (curr.right ! null)stack.add(curr.right);stack.add(curr);stack.add(null);if (curr.left ! null)stack.add(curr.left);} else {stack.pop();TreeNode temp stack.pop();if (pre ! null pre.val temp.val)return false;pre temp;}}return true;} }class Solution0098_3 {// 递归TreeNode max;public boolean isValidBST(TreeNode root) {if (root null) {return true;}// 左boolean left isValidBST(root.left);if (!left) {return false;}// 中if (max ! null root.val max.val) {return false;}max root;// 右boolean right isValidBST(root.right);return right;} }class Solution0098_4 {// 迭代public boolean isValidBST(TreeNode root) {if (root null) {return true;}StackTreeNode stack new Stack();TreeNode pre null;while (root ! null || !stack.isEmpty()) {while (root ! null) {stack.push(root);root root.left;// 左}// 中处理TreeNode pop stack.pop();if (pre ! null pop.val pre.val) {return false;}pre pop;root pop.right;// 右}return true;} }// 简洁实现·递归解法 class Solution0098_5 {public boolean isValidBST(TreeNode root) {return validBST(Long.MIN_VALUE, Long.MAX_VALUE, root);}boolean validBST(long lower, long upper, TreeNode root) {if (root null) return true;if (root.val lower || root.val upper) return false;return validBST(lower, root.val, root.left) validBST(root.val, upper, root.right);} }// 简洁实现·中序遍历 class Solution0098_6 {private long prev Long.MIN_VALUE;public boolean isValidBST(TreeNode root) {if (root null) {return true;}if (!isValidBST(root.left)) {return false;}if (root.val prev) { //不满足二叉搜索树条件return false;}prev root.val;return isValidBST(root.right);} }class Solution0098_7 {public boolean isValidBST(TreeNode root) {return isValidBST(root, Long.MIN_VALUE, Long.MAX_VALUE);}public boolean isValidBST(TreeNode node, long lower, long upper) {if (node null) {return true;}if (node.val lower || node.val upper) {return false;}return isValidBST(node.left, lower, node.val) isValidBST(node.right, node.val, upper);} }
http://www.zqtcl.cn/news/557170/

相关文章:

  • 织梦网站问题关于政务网站建设工作情况的总结
  • wordpress 拿站网站搭建后如何使用
  • 网站设计应遵循的原则wordpress免费空间
  • 建设网站的特色企业内部培训app软件
  • jsp网站缓存在哪wordpress设置静态页面
  • 百度做网站电话多少东台网页定制
  • 暖通设计网站推荐百度在西安的公司叫什么
  • 天津响应式网站设计网站建设的任务
  • 多语言网站 自助江门建设局网站
  • 宜兴做阿里巴巴网站常州外贸网站设计
  • 长沙米拓建站wordpress最底部版权
  • 小企业网站建设费用一年wordpress 怎么登陆
  • 阿里云建站可不可以备案wordpress评论滑动插件
  • 网站建设教程出售用苏州久远网络现在的网络营销方式
  • 浮动播放器wordpress刷神马seo排名首页排名
  • 建设网站呼叫中心有什么好处站长统计免费下载
  • 做网站电脑配置要求个高吗电子商务网站的建设包含哪些流程图
  • 青岛做网站大公司wordpress文章页加一言
  • 用哪个网站做相册视频文件夹谷歌ads
  • 注册top域名做公司网站男女做暖网站是什么
  • 郴州本地网站建设高端网站设计多少钱
  • 此网站域名即将过期广告制作属于什么行业
  • 牛牛襄阳网站建设wap网站asp源码
  • 信用网站建设招标书建网站需要什么手续
  • 重庆建网站方法网站开发和维护
  • 做网站需要什么人活动策划流程及细节
  • wordpress企业网站seo上海市
  • 北京建外贸网站公司网络域名是什么
  • 聚美优品网站建设方案上市公司的信息网站
  • 济南做网站比较好的公司知道吗为什么做美食视频网站