随笔分类 -  算法

摘要:1.bfs没法回溯,会出现应该能到达的位置被访问 2.多起点 struct pp{ int x; int y; int step; int vis[10][10]; }; int dx[4]={0,0,1,-1}; int dy[4]={1,-1,0,0}; int m; int n; int vi 阅读全文
posted @ 2022-10-04 19:32 lwx_R 阅读(44) 评论(0) 推荐(0)
摘要:由小至大推导公式,从2段开始一直到n段 int cuttingRope(int n) { //dp[i-j]*j 分为多段 //i-j *j 分为俩端 int dp[n+1]; memset(dp,0,sizeof(dp)); dp[2]=1; for(int i=3;i<=n;i++){ cout 阅读全文
posted @ 2022-10-04 19:21 lwx_R 阅读(25) 评论(0) 推荐(0)
摘要:1.递归 每次吧结果相乘 //递归快速幂 double myPow(double x, long long n) { //x x2 x4 x8 x16*x if(n >= 0){ return quickPow(x,n); }else{ //n为负数情况 n=-n; return 1.0/quick 阅读全文
posted @ 2022-10-04 19:17 lwx_R 阅读(40) 评论(0) 推荐(0)
摘要:vector<int> reversePrint(ListNode* head) { vector<int> ans; if(head==NULL){ return ans; } ListNode* cur=head; while(cur!=NULL){ ans.insert(ans.begin() 阅读全文
posted @ 2022-10-01 18:41 lwx_R 阅读(40) 评论(0) 推荐(0)
摘要:int longestCommonSubsequence(string text1, string text2) { //dp[i][j]记录text1前i序列和text2前j序列的最长公共序列 int dp[1005][1005]; memset(dp,0,sizeof(dp)); for(int 阅读全文
posted @ 2022-09-21 13:51 lwx_R 阅读(19) 评论(0) 推荐(0)
摘要:int lengthOfLIS(vector<int>& nums) { int len=nums.size(); int dp[len]; int list[len];//记录序列下标 vector<int> v; for(int i=0;i<len;i++){ dp[i]=1; list[i]= 阅读全文
posted @ 2022-09-21 13:25 lwx_R 阅读(50) 评论(0) 推荐(0)
摘要:int singleNumber(vector<int>& nums) { int l=nums.size(); sort(nums.begin(),nums.end()); if(l==1){ return nums[0]; } for(int i=0;i<l;i++){ //cout<<nums 阅读全文
posted @ 2022-09-16 13:59 lwx_R 阅读(20) 评论(0) 推荐(0)
摘要:uint32_t reverseBits(uint32_t n) { long ans=0; //从第一位算,计算完移位 for(int i=31;i>=0;i--){ if(n&1){ ans=ans+pow(2,i); } n=n>>1; } return ans; } 阅读全文
posted @ 2022-09-16 13:58 lwx_R 阅读(31) 评论(0) 推荐(0)
摘要:/* 使用 n & 1 得到二进制末尾是否为 1; 把 n 右移 1 位,直至结束。 */ int hammingWeight(uint32_t n) { int ans=0; for(int i=0;i<32;i++){ if(n&1){ ans++; } n=n>>1; } return ans 阅读全文
posted @ 2022-09-16 13:58 lwx_R 阅读(31) 评论(0) 推荐(0)
摘要://如果 n 是正整数并且 n & (n - 1) = 0那么 n 就是 2 的幂 //如果 n 是正整数并且 n \& (-n) = n,那么 n 就是 2 的幂。 bool isPowerOfTwo(int n) { if(n<=0){ return false; }else{ if((n&(n 阅读全文
posted @ 2022-09-16 13:57 lwx_R 阅读(23) 评论(0) 推荐(0)
摘要:/* 偷窃第 k间房屋,那么就不能偷窃第 k-1 间房屋,偷窃总金额为前 k-2 间房屋的最高总金额与第 k 间房屋的金额之和。 不偷窃第 k 间房屋,偷窃总金额为前 k-1 间房屋的最高总金额。 */ int rob(vector<int>& nums) { int dp[105]; int le 阅读全文
posted @ 2022-09-15 13:02 lwx_R 阅读(22) 评论(0) 推荐(0)
摘要:int minimumTotal(vector<vector<int>>& triangle) { int n=triangle.size(); int m=n; int dp[n][m]; for(int i=0;i<n;i++){ for(int j=0;j<i+1;j++){ if(i==0) 阅读全文
posted @ 2022-09-15 13:01 lwx_R 阅读(133) 评论(0) 推荐(0)
摘要:1.线性DP 1.1 数字递推 给定一个线性序列如数组,按某种条件求最优解 由小至大依次递推公式得回归方程 例题 LC120 题目 LC198 题目 1.2 最长上升子序列LIS 给定数组求它单调递增的序列最长度 例题 LC300 题目 1.3 最长公共子序列 例题 LC1143 题目 阅读全文
posted @ 2022-09-15 13:01 lwx_R 阅读(20) 评论(0) 推荐(0)
摘要:int l; int len; vector<string> v; vector<string> letterCasePermutation(string s) { len=s.size(); l=0; transform(s.begin(),s.end(),s.begin(),::toupper) 阅读全文
posted @ 2022-09-13 18:59 lwx_R 阅读(60) 评论(0) 推荐(0)
摘要:dfs时把条件回溯到上一个节点 1.求Cnm LC77 int vis[25]; vector<int> v; vector<vector<int>> ans; vector<vector<int>> combine(int n, int k) { /* CNM dfs一个没访问且大于i的数 */ 阅读全文
posted @ 2022-09-13 18:58 lwx_R 阅读(42) 评论(0) 推荐(0)
摘要:int orangesRotting(vector<vector<int>>& grid) { int dx[4] = {1, 0, 0, -1}; int dy[4] = {0, 1, -1, 0}; int time[15][15]; queue<pair<int,int>> q; int n= 阅读全文
posted @ 2022-09-12 10:38 lwx_R 阅读(55) 评论(0) 推荐(0)
摘要:1.二维数组寻找 //设置方向函数 int dx[12]={-2,-2,-2,-2,-1,-1,1, 1,2,2, 2, 2}; int dy[12]={1, 2,-1,-2, 2,-2,2,-2,1,2,-1,-2}; //记录是否访问 int vis[150][150]; //记录每一个点数据 阅读全文
posted @ 2022-09-05 17:57 lwx_R 阅读(38) 评论(0) 推荐(0)
摘要:const int dx[4] = {1, 0, 0, -1}; const int dy[4] = {0, 1, -1, 0}; vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int color) 阅读全文
posted @ 2022-09-05 17:49 lwx_R 阅读(30) 评论(0) 推荐(0)
摘要://需要自己指定开始位置(循环寻找) int dx[4]={1,-1,0,0}; int dy[4]={0,0,1,-1}; int vis[55][55]; int bfs(vector<vector<int>>& grid,int x,int y){ int res=1; queue<pair< 阅读全文
posted @ 2022-09-05 17:48 lwx_R 阅读(19) 评论(0) 推荐(0)
摘要:#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <map> #include <queue> #include <set> #include <iterator> #incl 阅读全文
posted @ 2022-09-05 17:02 lwx_R 阅读(57) 评论(0) 推荐(0)