【【LeetCode】224. 基本计算器 Basic Calculator II(C++)】教程文章相关的互联网学习教程文章

【LeetCode】C++ :简单题 - 递归 897. 递增顺序查找树【代码】

897. 递增顺序查找树 难度简单131 给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。 示例 : 输入:[5,3,6,2,4,null,8,1,null,null,null,7,9]5/ 3 6/ \ 2 4 8 / / \ 1 7 9输出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]1 2 3 4 5 ...

Leetcode第628题 三个数的最大乘积C++解法【代码】

class Solution { public:int maximumProduct(vector<int>& nums) {int high1=-1001,high2=-1001,high3=-1001,low1=1001,low2=1001; for(int i=0;i<nums.size();i++){if(nums[i]>=high1){high3=high2,high2=high1,high1=nums[i];}else if(nums[i]>=high2){high3=high2,high2=nums[i];}else if(nums[i]>=high3)high3=nums[i];if(nums[i]<=low1){low2=low1,low1=nums[i];}else if(nums[i]<=low2)low2=nums[i]; ...

Leetcode第66题 加一 C++解法【代码】

思路不够清晰。并不需要一位一位加,可以在循环中间返回的 class Solution { public:vector<int> plusOne(vector<int> &digits){if(digits[0]==0){digits[digits.size()-1]=1;return digits;}bool addforward = 1;for (int i = digits.size() - 1; i >= 0; i--){if (digits[i] + addforward > 9){digits[i] = 0;addforward = 1;}else{digits[i] += addforward;addforward = 0;}}if (digits[0] == 0){digits.insert(digits.begin(),...

Leetcode第35题 搜索插入位置 C++解法【代码】

标准二分搜索,掌握的还不好,还有细节要敲定 class Solution { public:int searchInsert(vector<int>& nums, int target) {if(nums[0]>target)return 0;if(nums[nums.size()-1]<target)return nums.size();int n_up=nums.size()-1,n_down=0;int result;while(n_down<n_up){result =(n_up+n_down)/2;if(target>nums[result])n_down=result+1;elsen_up=result;}return n_up>n_down?n_up:n_down;} };

LeetCode4. 寻找两个正序数组的中位数C++【代码】

暴力解法 class Solution { public:double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {int lennums1 = nums1.size();int lennums2 = nums2.size();int lennums = lennums1 + lennums2;vector<int> nums(lennums);//将两个数组合并成一个正序数组int i = 0, j = 0, k = 0;for (; i < lennums1 && j < lennums2;) {if (nums1[i] <= nums2[j]) {nums[k] = nums1[i];i++;}else {nums[k] = nums2[j];j++;}k++;}/...

leetcode算法题 求数列最长连续不重复子序列 C++【代码】【图】

求数列最长连续不重复子序列 C++: 思路: 1、取窗口的开始位置为start 2、取滑动窗口从[start,i-1) 3、i在for循环中一直递加,并每次都和窗口中的字符a[j],start<=j<i进行比较,判断arr[j]==arr[i] 一旦遇到当前字符在之前的滑动窗口中存在,那么当前窗口的最长无重复子串的长度为 i-pre, 同时更新下一个滑动窗口的起始位置为 start = j+1 4、需要注意的是最后一个字符的处理,当最后一个字符不与滑动窗口中的值重复时,得不出...

【leetcode】二叉树的最小深度c++【代码】【图】

给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:2 示例 2: 输入:root = [2,null,3,null,4,null,5,null,6] 输出:5 提示: 树中节点数的范围在 [0, 105] 内 -1000 <= Node.val <= 1000 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left...

leetcode【210】【Depth-first Search】Course Schedule II【c++版本】【代码】

问题描述: There are a total of n courses you have to take labelled from 0 to n - 1. Some courses may have prerequisites, for example, if prerequisites[i] = [ai, bi] this means you must take the course bi before the course ai. Given the total number of courses numCourses and a list of the prerequisite pairs, return the ordering of courses you should take to finish all courses. If there are many va...

13. 罗马数字转整数 - 力扣(LeetCode)- C++【代码】【图】

最近在刷LeetCode题目,不定期分享一些解法。 本题的题目描述如下: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符数值I1V5X10L50C100D500M1000 例如,罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。27 写做 XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 ...

Leetcode16. 最接近的三数之和(C++思路与代码)【代码】

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 示例: 输入:nums = [-1,2,1,-4], target = 1 输出:2 解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。 思路: 和15题相似。固定i,r和l分别从i+1,nums.size()-1。如果target-sum的绝对值小于三个数的和。那么将tmp=abs(target-sum),res=sum。如果tar...

【leetcode】 二进制求和c++【代码】

给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 示例 1: 输入: a = "11", b = "1" 输出: "100"示例 2: 输入: a = "1010", b = "1011" 输出: "10101"提示: 每个字符串仅由字符 '0' 或 '1' 组成。 1 <= a.length, b.length <= 10^4 字符串如果不是 "0" ,就都不含前导零。class Solution { public:string addBinary(string a, string b) {string result="",rr="";char aa,bb;int l...

LeetCode 剑指 Offer 07. 重建二叉树(不递归不知道C++传vector多么浪费时间)【代码】【图】

剑指 Offer 07. 重建二叉树 题目链接 前序遍历:根节点->左子树->右子树 中序遍历:左子树->根节点->右子树 前序遍历的第一个节点是根节点,然后根据根节点在中序遍历数组中的位置,该位置左边是左子树的节点数量,该位置右边是右子树的节点数量。 C++: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right...

LeetCode C++ 454. 4Sum II【Hash Table/Sort/Two Pointers/Binary Search】【代码】

Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero.To make problem a bit easier, all A, B, C, D have same length of N where 0 ≤ N ≤ 500. All integers are in the range of -228 to 228 - 1 and the result is guaranteed to be at most 231 - 1. Example: Input: A = [ 1, 2] B = [-2,-1] C = [-1, 2] D = [ 0, 2]Output: 2E...

【leetcode】加一c++【代码】

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入:digits = [1,2,3] 输出:[1,2,4] 解释:输入数组表示数字 123。 示例 2: 输入:digits = [4,3,2,1] 输出:[4,3,2,2] 解释:输入数组表示数字 4321。 示例 3: 输入:digits = [0] 输出:[1] 提示: 1 <= digits.length ...

leetcode 5607. 生成平衡数组的方案数(C++)【代码】

给你一个整数数组 nums 。你需要选择 恰好 一个下标(下标从 0 开始)并删除对应的元素。请注意剩下元素的下标可能会因为删除操作而发生改变。 比方说,如果 nums = [6,1,7,4,1] ,那么: 选择删除下标 1 ,剩下的数组为 nums = [6,7,4,1] 。选择删除下标 2 ,剩下的数组为 nums = [6,1,4,1] 。选择删除下标 4 ,剩下的数组为 nums = [6,1,7,4] 。 如果一个数组满足奇数下标元素的和与偶数下标元素的和相等,该数组就是一个 平衡数...