代码随想录Day11】的更多相关文章

第一题150. 逆波兰表达式求值 根据 逆波兰表示法,求表达式的值. 有效的算符包括 +.-.*./ .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 注意 两个整数之间的除法只保留整数部分. 可以保证给定的逆波兰表达式总是有效的.换句话说,表达式总会得出有效数值且不存在除数为 0 的情况. ψ(`∇´)ψ 我的思路 题目上提示的已经很清晰了 去掉括号后表达式无歧义,上式即便写成 1 2 + 3 4 + * 也可以依据次序计算出正确结果. 适合用栈操作运算:遇到数字则入栈:遇到算符则取出栈…
第一题344.反转字符串 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问题. ψ(`∇´)ψ 我的思路 取到字符串的中点,依次交换前后两部分的位置 package string; public class ReverseString { public static void reverseString(char[] s) { char temp; for (int…
链表 今天主要是把链表专题刷完了,链表专题的题目不是很难,基本都是考察对链表的操作的理解. 在处理链表问题的时候,我们通常会引入一个哨兵节点(dummy),dummy节点指向原链表的头结点.这样,当我们对头结点进行操作的时候就可以直接使用dummy节点,不用进行特判. 在对链表进行操作的时候 while的循环条件也是容易犯错的地方,我们不应该死记这题该是cur != null还是cur.next != null又或是其他.而是应该画个图,手动模拟一下,便知道结束的条件. 203.移除链表元素 题…
前言 2.25日开始记录自己的博客生涯以及代码随想录训练营的每日内容 一.题目链接怎么找?怎么设置连接? 力扣题目链接1:力扣 二.正文怎么写? 二分查找 算法思路: 二分查找需要保证数组为有序数组同时无重复元素,否组无法通过二分查找进行判断(结果无法唯一) 二分查找通过不断收缩数组,趋近中间值进行,由于有序,可以通过中间值与目标的比较实现 三.代码怎么粘贴? 怎么进行注释?能不能修改? // 版本二 class Solution { public: int search(vector<int>…
背包问题 问题描述 背包问题是一系列问题的统称,具体包括:01背包.完全背包.多重背包.分组背包等(仅需掌握前两种,后面的为竞赛级题目) 下面来研究01背包 实际上即使是最经典的01背包,也不会直接出现在题目中,一般是融入到其他的题目背景中再考察 因为是学习原理,所以先跳过最原始的问题模板来学. 01背包的原始题意是:(标准的背包问题) 有n件物品和一个最多能背重量为 w 的背包.第 i 件物品的重量是 weight[i] ,得到的价值是 value[i] .每件物品只能用一次,求解将哪些物品装…
基础知识 String StringBuilder 操作 public class StringOperation { int startIndex; int endIndex; { //初始容量为16个字符 主要做增删查改 索引包头不包尾 StringBuilder sb = new StringBuilder(); sb.append("str"); // 把原来index上的元素挪到新添加的元素位置后 sb.insert(1, "str"); sb.delet…
第一题454.四数相加II 给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 <= i, j, k, l < n nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0 拿到题有点懵,第一时间想的是暴力,4个for循环,但想着一定会超时就没有实现直接看了题解 先遍历前两个数组求出所有可能的和,存入map中,两数之和为key,出现的次数作为value 再遍…
LeetCode 235. 二叉搜索树的最近公共祖先 分析1.0  二叉搜索树根节点元素值大小介于子树之间,所以只要找到第一个介于他俩之间的节点就行 class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if(root.val >= p.val && root.val <= q.val){ return root; }else if(root.…
LeetCode 110.平衡二叉树 分析1.0 求左子树高度和右子树高度,若高度差>1,则返回false,所以我递归了两遍 class Solution { public boolean isBalanced(TreeNode root) { if(root == null){ return true; } int left = postOrder(root.left); int right = postOrder(root.right); if(Math.abs(left-right)>1…
基础知识 二叉树基础知识 二叉树多考察完全二叉树.满二叉树,可以分为链式存储和数组存储,父子兄弟访问方式也有所不同,遍历也分为了前中后序遍历和层次遍历 Java定义 public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) {…