动态规划算法 leetcode


动态规划leetcode 70 爬楼梯func climbStairs(n int) int { if n <= 1 { return 1 } dp := make([]int, n+1) dp[0] = 1 dp[1] = 1 for i :

Leetcode 226.翻转二叉树


用递归,递归获取左右两树的根节点,然后替换左右两子树/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode *

二叉树的遍历


二叉树DLR–前序遍历(根在前,从左往右,一棵树的根永远在左子树前面,左子树又永远在右子树前面 )LDR–中序遍历(根在中,从左往右,一棵树的左子树永远在根前面,根永远在右子树前面)LRD–后序遍历(根在后,从左往右,一棵树的左子树永远在右子树前面,右子树永远在根前面)前序遍历ABDECF#incl

Leetcode 234. 回文链表


https://leetcode.cn/problems/palindrome-linked-list/description/?envType=problem-list-v2&envId=2cktkvj双指针,一个往后读一个往前读,如果不一样就false,否则就是回文链表/** * Def

Leetcode 236. 二叉树的最近公共祖先


https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/description/?envType=problem-list-v2&envId=2cktkvj解题思路:利用深度优先搜索,把所有节点的父节点存入pa

Leetcode160. 相交链表


https://leetcode.cn/problems/intersection-of-two-linked-lists/description/?envType=problem-list-v2&envId=2cktkvj双指针法https://leetcode.cn/problems/i

快速幂


快速幂递归快速幂//递归快速幂 ll qpow(int a,int n) {if(n == 0) {return 1;}else if (n%2 == 1) {return qpow(a,n-1) * a;}else {long long temp = qpow(a,n/2);return temp

同余式&扩展欧几里得算法


取余运算的性质同余式性质逆元:a⋅b≡1(mod p)称a是b的乘法逆元,逆元: a·b ≡ 1 (mod~p) \\称a是b的乘法逆元,逆元:a⋅b≡1(mod p)称a是b的乘法逆元,那如何计算逆元呢?使用快速幂算法就可以了int qpow(int a,int n,int p) { int

二叉树寻找节点在第几层获取左右子树有几个节点


#include <iostream>#include <vector>#include <stdio.h>using namespace std;class TreeNode {public: int val; TreeNode *left;

滑动窗口模板


模板/* 滑动窗口算法框架 */void slidingWindow(string s, string t) { unordered_map<char, int> window; int left = 0, right = 0; while (right < s.