- 博客(26)
- 收藏
- 关注
原创 最长公共子序列问题
最长公共子序列问题 (LCS,Longest Common Subsequence)定义 d[i][j]:=s1…si和t1…tjd[i][j]:=s_1…s_i和t_1…t_jd[i][j]:=s1…si和t1…tj 对应的LCS的长度∴s1…si+1和t1…tj+1∴ s_1…s_{i+1}和t_1…t_{j+1}∴s1…si+1和t1…tj+1 对应的公共子列可能是:...
2020-01-30 15:46:26 263
原创 LeetCode 198. 打家劫舍
方法一:简单搜索(超出内存限制)对于每一家i,选择抢或不抢,若不抢,则可对i+1进行选择;若抢,则对i+2进行选择class Solution {public: int rob(vector<int>& nums) { if(nums.size()==0) return 0;//空集特判 return rec(nums,0); ...
2020-01-30 14:08:36 198
原创 背包问题
方法一:简单搜索针对每个物品是否放入背包进行搜索。时间复杂度O(2n)O(2^n)O(2n)#include<bits/stdc++.h>using namespace std;const int maxn=100;int n,W,w[maxn],v[maxn];int rec(int i,int j){//从第i个物品开始挑选总重小于j的部分 int res; ...
2020-01-30 11:13:09 152
原创 LeetCode 1162. 地图分析
思路:从所有陆地同时开始bfs,维护距离矩阵d,最后从d中找出最大值即为所求class Solution {private: const int inf=1e8; typedef pair<int,int> P; int d[100][100],dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};public: int maxDistance(v...
2020-01-29 15:33:11 233
原创 LeetCode 1091. 二进制矩阵中的最短路径
思路:利用bfs,维护距离矩阵d,找到最短路径class Solution {private:const int inf=1e8;typedef pair<int,int> P;int d[100][100];public: int shortestPathBinaryMatrix(vector<vector<int>>& grid...
2020-01-29 10:52:59 198
原创 LeetCode 695. 岛屿的最大面积
方法:深度优先搜索dfs每个1旁边的4个单位,利用递归函数统计最大面积class Solution {private:int visited[60][60],dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};public: int maxAreaOfIsland(vector<vector<int>>& grid) { ...
2020-01-28 10:44:35 241
原创 LeetCode 111. 二叉树的最小深度
方法一:递归法注意:最小深度的定义/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NUL...
2020-01-28 09:52:52 275
原创 LeetCode 870. 优势洗牌
方法一:贪心算法(超时)对于每个B[i],找到比其大的最小A[j],若不存在,则用最小的A[j]抵消class Solution {public: vector<int> advantageCount(vector<int>& A, vector<int>& B) { int len=A.size(); ...
2020-01-27 12:06:21 3892
原创 LeetCode 134. 加油站
方法一:简单模拟循环遍历两数组,从第一个满足启动的下标开始,根据解释模拟行驶情况class Solution {public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { int can_complete=0,len=gas.size(); ...
2020-01-27 10:45:01 245
原创 LeetCode 55. 跳跃游戏
方法一:简单模拟如果一个起跳点的跳跃距离为2,则后2个格子都可作为起跳点,对每个起跳点进行尝试,更新能达到的最远距离class Solution {public: bool canJump(vector<int>& nums) { int max_dis=0,len=nums.size(); for(int i=0;i<len;i++)...
2020-01-26 17:37:21 239
原创 LeetCode 122. 买卖股票的最佳时机 II
方法一:暴力搜索(dfs)对于每天的股价,有三种情况,不买不卖,买,卖;对于这三种情况进行深度优先搜索class Solution { private:int len,maxprofit=0; public: int maxProfit(vector<int>& prices) { len=prices.size(); if(...
2020-01-26 16:47:17 321
原创 微信小程序开发——第 4 章 场景应用
4.1 开发流程基本介绍首先我们对整个小程序整体的产品体验有一个清晰的规划和定义,一般会通过交互图或者手稿描绘小程序的界面交互和界面之间的跳转关系。优先完成WXML+WXSS还原设计稿,把界面涉及到的元素和视觉细节先调试完成。最后我们把按照页面交互梳理出每个页面的data部分,填充WXML的模板语法,还有完成JS逻辑部分。4.2 基本的布局方法——Flex布局采用flex布局的元素,简称...
2020-01-18 23:33:51 327
原创 微信小程序开发——第3章 理解小程序宿主环境
3.1 渲染层和逻辑层小程序的运行环境分成渲染层和逻辑层,WXML 模板和 WXSS 样式工作在渲染层,JS 脚本工作在逻辑层。3.1.1 渲染“Hello World”页面WXML模板使用 view 标签,其子节点用 {{ }} 的语法绑定一个 msg 的变量:<view>{{ msg }}</view>在 JS 脚本使用 this.setData 方法把 m...
2020-01-16 12:34:32 681
原创 微信小程序开发——第2章 小程序代码组成
2.1 JSON 配置JSON 是一种数据格式,在小程序中起静态配置的作用。JSON 在小程序运行之前就决定了小程序一些表现,需要注意的是小程序是无法在运行过程中去动态更新JSON 配置文件从而发生对应的变化的。2.1.1 JSON 语法JSON文件都是被包裹在一个大括号中 {},通过key-value的方式来表达数据。JSON的Key必须包裹在一个双引号中且无法使用注释。2.2 WXM...
2020-01-15 22:57:10 569
原创 区间问题
思路:在可选的工作中,每次选取结束时间最早的工作(结束时间越早,之后可选的工作也就越多)代码:#include<bits/stdc++.h>using namespace std;const int maxn=1e5;int n;pair<int,int>work[maxn];int main(){ cin>>n; for(int i=0;...
2020-01-15 18:55:40 238
原创 微信小程序开发——起步
一、小程序代码构成.json后缀的 JSON 文件.wxml 后缀的 WXML 模板文件.wxss 后缀的 WXSS 样式文件.js 后缀的 JS 脚本逻辑文件JSON 配置JSON是一种数据格式,在小程序中,起静态配置的作用。小程序配置 app.jsonapp.json是当前小程序的全局配置,QuickStart项目中的app.json配置内容如下:{ "pages":...
2020-01-15 12:20:51 2007
原创 特殊状态的枚举【模板】
一、利用permutation进行枚举1、递归实现枚举代码:思路见注释bool used[maxn];int perm[maxn];void permutation1(int pos,int n){//生成{0,1,…,n-1}的n!种排列 if(pos==n){//需要对perm进行的操作 return; } for(int i=0;i<n;i++)//针对perm的第...
2020-01-14 21:32:38 316
原创 迷宫的最短路径
思路:bfs按照距开始状态由近及远的顺序搜索,适合求最短路路径、最少操作问题;这个问题中,状态只是位置坐标,可构造pair表达,当状态更复杂时,需要封装成结构体。代码:#include<bits/stdc++.h>using namespace std;const int maxn=1e2;const int inf=1e8;//一般将inf设为放大2~4倍不会溢出的大小...
2020-01-14 21:09:41 223
原创 Lake Counting
洛谷 P1596 [USACO10OCT]湖计数Lake Counting思路:从任意W开始,不停地将邻接部分用‘.’代替,一次dfs后与初始地w连接地所有W就都替换成了‘.’;直到图中不存在W为止,进行dfs的次数即为所求。代码:#include<bits/stdc++.h>using namespace std;const int maxn=1e2;int N,M;...
2020-01-14 18:28:46 258
原创 部分和问题
思路:从a1a_1a1开始按顺序决定每个数加或不加,在全部n个数都决定后再判断它们的和是否为k即可;时间复杂度为O(2n)O(2^n)O(2n)代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=20;ll a[maxn],n,k;bool dfs(ll i...
2020-01-14 17:53:47 1521
原创 C++中STL总结
一、二分搜索:要求数组元素非递减(先对数组排序)1、binary_search:查找某个元素是否出现a.函数模板:binary_search(arr[],arr[]+size,x)b.参数说明: arr[]:数组首地址 size:数组元素个数 x:需要查找的值c.函数功能:在数组中以二分法检索的方式查找,若在数组中查找到值为x的元素则返回真,否则返回假2、low...
2020-01-14 17:17:42 158
原创 抽签
思路:暴力搜索,四重循环解决问题代码:#include<bits/stdc++.h>using namespace std;const int maxn=1e6;int n,m,k[maxn];int main(){ cin>>n>>m; for(int i=0;i<n;i++) cin>>k[i]; int find=0...
2020-01-14 16:35:15 302
原创 Ants
思路:首先我们考虑到,两只ants相遇时向反方向爬回,相当于两只ants交错而过继续前进。 由此,时间最短的情况为每只ants向最近端点爬去;时间最长的情况为每只ants向距离最远的端点爬去。代码:#include<bits/stdc++.h>using namespace std;const int maxn=1e6;int x[maxn],n,L,m;int main...
2020-01-14 16:16:41 269
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人