上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 85 下一页
摘要: 贪心即可 class Solution { public: vector<int> v[410]; vector<int> record; int vis[410]; int minSwaps(vector<vector<int>>& grid) { int n = grid.size(); mem 阅读全文
posted @ 2021-11-13 11:19 WTSRUVF 阅读(41) 评论(0) 推荐(0)
摘要: 水题,spfa即可 class Solution { public: vector<int> gra[5010]; int d[5010], vis[5010]; bool check(string str1, string str2) { int len1 = str1.length(), len 阅读全文
posted @ 2021-11-12 20:54 WTSRUVF 阅读(34) 评论(0) 推荐(0)
摘要: 倒推 每次选最大的,然后减去剩余的所有值的和,即为按题意的操作,该位置上次的值 但倒退的话不用在意值的顺序,所以每次排一下序,选最大的即可 显然[1,1,1000000000] 类似于这样的可能超时,所以不用减,用% 当然如果只有两个值,且其中一个为1,因为任何数%1都为0,所以直接返回true就行 阅读全文
posted @ 2021-11-09 21:13 WTSRUVF 阅读(21) 评论(0) 推荐(0)
摘要: 水题,只是为了练一下bfs标记层数 dfs就行 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : va 阅读全文
posted @ 2021-11-08 20:12 WTSRUVF 阅读(27) 评论(0) 推荐(0)
摘要: O(nk)的dp就能解决 dp[n][j] 表示当最后一个数以第j种方式取时的最大值,其中j <= k 推广到每个i即可, 用pre[i]存储第i个数不同取法中的最大值 class Solution { public: int dp[550][550]; int pre[550]; int maxS 阅读全文
posted @ 2021-11-07 20:21 WTSRUVF 阅读(36) 评论(0) 推荐(0)
摘要: 垃圾题目 class Solution { public: int sum(string str) { long long ret = 0; int len = str.length(); int flag = 0; for(int i = 0; i < len; i++) { if(str[len 阅读全文
posted @ 2021-11-05 20:44 WTSRUVF 阅读(36) 评论(0) 推荐(0)
摘要: 总结: 用于判断凸多边形内部点 给出任意多边形顶点,设A和B为其中两点且逆时针排序,C为内部一点,则向量AB叉乘向量AC小于0 如果是顺时针排序,则向量AB叉乘向量AC大于0 先按x从小到大,如果x相同,则y从小到大的顺序排序 已知x最小、y最小、x最大、y最大的点肯定为凸包上的点,为什么,可以仔细 阅读全文
posted @ 2021-11-04 21:53 WTSRUVF 阅读(45) 评论(0) 推荐(0)
摘要: 先sort一下,就能将reservedSeats 数组按照行和列排序,设begin = 0, end = 11 则遍历每个reservedSeats时,将有cnt = reservedSeats[i][1] - begin - 1个空位 如果reservedSeats[i][0] == reserv 阅读全文
posted @ 2021-11-03 21:46 WTSRUVF 阅读(37) 评论(0) 推荐(0)
摘要: 就找出最后一层的所有节点,依次求lca就行 lca暴力就行 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode( 阅读全文
posted @ 2021-11-02 21:56 WTSRUVF 阅读(27) 评论(0) 推荐(0)
摘要: 区间dp + 记忆性搜索 搭眼一看,是个最大值最小化 dp[1][n]表示区间[1, n]所需要至少的money 因为不知道最后一步选哪个,则枚举1-n的数 则dp[1][n] = min(dp[1][n], k + max(dp[1][k - 1], dp[k + 1][n])) 注意边界 用df 阅读全文
posted @ 2021-11-02 10:08 WTSRUVF 阅读(68) 评论(0) 推荐(0)
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 85 下一页