leetcode-157周赛-5213-玩筹码】的更多相关文章

这道题本应该很简单的但是我把他复杂化了,所以没有在第一时间里A出来.我们来看看题目 看上去是不是很复杂,思路是有,但是,很难实现.我最开始的时候是认为有三种情况,左边筹码最多,右边筹码最多,中间筹码最多.写了三组 for 循环.只过了70%的样例.这时候,我就意识到,我肯定想多了!当我重新思考这道问题的时候,我发现其实就只有两种情况:  1.奇数点的筹码移动到偶数上,移动奇数次. 2.偶数点的筹码移动到奇数上,移动偶数次. 为什么成立呢?因为我们规定了数轴为整数.所以我们选择的最终目的地不是奇数…
当时居然没想到,我真菜,就当记录一下了. 思路分析: 分为两种: 第一种:走两步的,无论是奇或偶的位置,只要走两步,代价为0: 第二种:走一步的,就是偶数到奇数,或者奇数到偶数,代价为1: 那么实际上,到最后,可以因为代价为0的走法,直接变成了,一个偶数和邻近的一个奇数了(恐怖如斯) 转化成了奇数多,还是偶数多的问题了. 贴下代码:…
题目: 数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中. 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 将第 i 个筹码向左或者右移动 2 个单位,代价为 0.将第 i 个筹码向左或者右移动 1 个单位,代价为 1.最开始的时候,同一位置上也可能放着两个或者更多的筹码. 返回将所有筹码移动到同一位置(任意位置)上所需要的最小代价. 示例 1: 输入:chips = [1,2,3]输出:1解释:第二个筹码移动到位置三的代价是 1,第一个筹码移动到位置三的…
The API: int read4(char *buf) reads 4 characters at a time from a file.The return value is the actual number of characters read. For example, it returns 3 if there is only 3 characters left in the file.By using the read4 API, implement the function i…
The API: int read4(char *buf) reads 4 characters at a time from a file. The return value is the actual number of characters read. For example, it returns 3 if there is only 3 characters left in the file. By using the read4 API, implement the function…
Problem: The API: int read4(char *buf) reads 4 characters at a time from a file. The return value is the actual number of characters read. For example, it returns 3 if there is only 3 characters left in the file. By using the read4 API, implement the…
一个坐标可以从 -infinity 延伸到 +infinity 的 无限大的 棋盘上,你的 骑士 驻扎在坐标为 [0, 0] 的方格里. 骑士的走法和中国象棋中的马相似,走 “日” 字:即先向左(或右)走 1 格,再向上(或下)走 2 格:或先向左(或右)走 2 格,再向上(或下)走 1 格. 每次移动,他都可以按八个方向之一前进. 现在,骑士需要前去征服坐标为 [x, y] 的部落,请你为他规划路线. 最后返回所需的最小移动次数即可.本题确保答案是一定存在的. 示例 : 输入:x = , y…
给你一个矩阵 mat,其中每一行的元素都已经按 递增 顺序排好了.请你帮忙找出在所有这些行中 最小的公共元素. 如果矩阵中没有这样的公共元素,就请返回 -1. 示例: 输入:mat = [[,,,,],[,,,,],[,,,,],[,,,,]] 输出: 解法: 暴力解法  就是使用哈希记录每行 然后比较 代码 class Solution { public: unordered_map<]; int smallestCommonElement(vector<vector<int>&…
题目链接 给你一个整数数组 arr 和一个整数值 target . 请你在 arr 中找 两个互不重叠的子数组 且它们的和都等于 target .可能会有多种方案,请你返回满足要求的两个子数组长度和的 最小值 . 请返回满足要求的最小长度和,如果无法找到这样的两个子数组,请返回 -1 . 一个map用来保存从0-index i 的前缀和以及索引 ------mp[前缀和] = 索引 一个dp用来保存不大于目前索引i的最小长度的子数组长度, 如果不存在, 则为maxn 用一个sum做累加, 同时对…
1604. 警告一小时内使用相同员工卡大于等于三次的人 题目链接 题意 给定两个字符串数组keyName和keyTime,分别表示名字为keytime[i]的人,在某一天内使用员工卡的时间(格式为24小时制,"HH:MM").你要找出一小时内使用员工卡大于等于3的人,名字按字典序升序排列.注意,"23:51"-"00:10"不被视为一小时内,因为系统记录的是某一天内的使用情况 分析 给每个人创建一个数组,记录所有的打卡时间,然后将每个人名字字符串…