199. 二叉树的右视图 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释:1 <—/ 2 3 <—\ 5 4 <—两种方法,bfs和dfsbfs://bfs/** * Definition for a binary tree node. * struct TreeNode {
78. 子集 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]方法一:动态规划//动态规划class Solution {public: vector<vector<int>> subsets(vector<int>& nums) {
53. 最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。方法一:dpclass Solution {public: int maxSubArray(vector<int>& nums) { in
148. 排序链表 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5用归并排序解决,归并排序有两种写法,所以有两种方法。方法一:(迭代的归并排序)...
557. 反转字符串中的单词 III 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: “Let’s take LeetCode contest”输出: “s’teL ekat edoCteeL tsetnoc”注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。方法一:(istringstream)//istringstream对象可以绑定一行...
231. 2的幂 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false方法一:log函数:若底数为m,则为log(n)/log(m)pow函数: pow(2,3)=2^3round: 四舍五入取整class Solution...
leetcode 19. 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?使用快慢指针方法一://快慢指针/** * Definition for ...
leetcode 3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所...
pat树问题总结2 dfs,bfs 目录根据前中后三种遍历构建树dfs,bfs堆。结合dfs、完全二叉树的一些性质注:dfs写出路径的一般写法,先写出边界条件,在此条件下输出保存路径的数组,然后通过下面所示的方法,将路径的index放入保存路径的数组,并递归。(结合A1053和A1155)(A1053)给出树的结构和权值,找出从根节点到叶子结点路径上权值相加之和等于给定数字的路径,并且从大到小输出路径。分析:模板题。...
pat树问题总结3 建树 并不是说其他题不用建树,只是这类题是真正用一个build函数建。其实要看他们的输入,一般来说都会给出二叉树所有结点的data。(A1115)输出一个二叉搜索树最后两层的结点个数a和b,以及他们的和c :“a + b = c”点评:build一棵二叉树,dfs确认其深度及每层结点个数,最后按要求加和即可。#include <iostream>#include <vector...
pat树问题总结1 根据前中后三种遍历构建树 目录根据前中后三种遍历构建树dfs,bfs堆。结合dfs、完全二叉树的一些性质(A1120) 给出一棵二叉树的前序遍历和中序遍历,求这棵树的层序遍历。分析:模板题。#include<iostream>#include<vector>#include<string>#include<queue>#include<algor...
动态规划问题 目录动态规划的递归写法和递推写法典型例题总结1.动态规划的递归写法和递推写法1.1 动态规划的递归算法以斐波那契数列为例,用一般的递归写法写出如下代码:int F(int n){ if(n==0||n==1) return 1; else return F(n-1)+F(n-2);}但上面代码会产生许多的重复计算,为了避免重复计算,可以新开一个一维数组dp,用来保存已经...
并查集 目录并查集的定义并查集的基本操作路径压缩例题1.并查集的定义并查集,顾名思义:Union,Find,Set. 即支持两个操作:合并和查找。并查集如何实现呢?其实就是一个数组int father[N];,其中father[i]表示元素i的父亲结点,而父亲结点本身就是这个集合内的元素。举个例子,如father[1]=2就是说元素1的父亲为2,。另外,当father[i]==i时,则说...
图算法知识点和模板(未完待续) 目录图的储存(邻接表和邻接矩阵)图的遍历(DFS和BFS)最短路径(Dijkstra算法、Bellman-Ford算法与SPFA算法,Floyd算法)最小生成树(Prim算法,Kruskal算法)拓扑排序关键路径1. 图的储存1.1 邻接矩阵就是一个二维数组G[N][N],当G[i][j]=1时,说明顶点i和顶点j存在边;当当G[i][j]=0时,说明顶点i和顶点j不存在边。...
leetcode 300. Longest Increasing Subsequence Given an unsorted array of integers, find the length of longest increasing subsequence.Example:Input: [10,9,2,5,3,7,101,18]Output: 4Explanation: The longest increasing subsequence is [2,3,7,101], ...
leetcode 98. Validate Binary Search Tree Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nodes with keys less than the node’s key.The rig...
leetcode 501.Find Mode in Binary Search Tree Given a binary search tree (BST) with duplicates, find all the mode(s) (the most frequently occurred element) in the given BST.Assume a BST is defined as follows:The left subtree of a node contains ...
leetcode 72. Edit Distance 编辑距离(字符串动态规划) Given two words word1 and word2, find the minimum number of operations required to convert word1 to word2.You have the following 3 operations permitted on a word:Insert a characterDelete a characte...
leetcode 230. Kth Smallest Element in a BST Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.Note:You may assume k is always valid, 1 ≤ k ≤ BST’s total elements.Example 1:Input: root = [3,1,4,n...
236. Lowest Common Ancestor of a Binary Tree Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes p a...