766. Toeplitz Matrix

第一题不说,贼麻瓜,好久没以比赛的状态写题,这个题浪费了快40分钟,我真是。。。。。。

767. Reorganize String

就是给你一个字符串,能不能转换成:任意一个字符S[i],使得S[i-1]和S[i+1]都不等于S[i]。如果能输出,不能就输出一个空字符串。

大一的时候好像有印象,队友做出来的,贪心吧,如果遇到相邻两个一样的,就从后面找一个插到中间,具体原理我也不知道为什么,反正是对的,从头到尾扫一遍,再倒着来一遍,为什么要两边我也不知道,反正是对的。。。我也很凌乱啊!!!

 class Solution {
public:
string reorganizeString(string S) {
int len = S.size();
string ts = S;
bool ans1 = true;
for(int i=;i<len;i++)
{
if(ts[i]==ts[i+]) {
if(i == len-) ans1 = false;
for(int j=i+;j<len;j++)
{
if(ts[j]!=ts[i] && ts[j]!=ts[i+])
{
swap(ts[j], ts[i+]);
break;
}
if(j == len-) {
ans1 = false;
}
}
}
}
string ts2 = ts;
reverse(ts2.begin(), ts2.end());
bool ans2 = true;
for(int i=;i<len;i++)
{
if(ts2[i]==ts2[i+]) {
if(i == len-) ans2 = false;
for(int j=i+;j<len;j++)
{
if(ts2[j]!=ts2[i] && ts2[j]!=ts2[i+])
{
swap(ts2[j], ts2[i+]);
break;
}
if(j == len-) {
ans2 = false;
}
}
}
}
if(ans1){
return ts;
}
else if(ans2) {
return ts2;
}
else {
return "";
}
}
};

769. Max Chunks To Make Sorted

给你一个序列,问你把这个序列分成n块,每个块单独排序,且排完序后和整体排序得到的结果要一模一样,求n的最大值

因为这个题说了,序列的内容是0——length-1,所以序列的内容唯一且连续

遍历序列从i到length-1,对前i的内容进行求最大值max,和最小值min,若在前i的序列中,min == 下标的最小值,max == 下标的最大值,即最小块,只是比赛时想到的,虽然也对,但太麻烦

 class Solution {
public:
int maxChunksToSorted(vector<int>& arr) {
int ans = ;
int start = ;
while(start != arr.size()){
int min = arr[start], max = arr[start];
for(int end=start;end<arr.size();end++)
{
max = max>arr[end]?max:arr[end];
min = min<arr[end]?min:arr[end];
if(min == start&&max == end) {
ans ++;
start = end + ;
break;
}
}
}
return ans;
}
};

题解,只用求最大值就可以了,因为所以序列的内容唯一且连续,所以若arr[i]为最大值且 i == arr[i],则说明,小于 i的部分已经可以且一定顺序连续地排序

 class Solution(object):
def maxChunksToSorted(self, arr):
ans = ma = 0
for i, x in enumerate(arr):
ma = max(ma, x)
if ma == i: ans += 1
return ans

768. Max Chunks To Make Sorted II

这是第二题的升级版

序列里的内容不一定(唯一且连续)了,其他都是一样的

我们来看一个特殊的序列1,1,0,0,1

对于正确的序列来说,是0,0,1,1,1

如果用上一种方法,那么到第三个数的时候,ans就要加一了

所以判断是否是最小且正确的块的时候,还要判断,前面出现的内容,和全部排好序的序列,是否一致

我在这里引入一个已遍历的序列和作为判断,这个算法的正确性,我还不得而知,我自己甚至认为可能不对,因为我数学学得是真的烂。。。。。。

希望若有人证明是正确的可以告诉我

 class Solution:
def maxChunksToSorted(self, arr):
ans = 0
sum1 = 0
sum2 = 0
arr_pre_max = arr[0]
tarr = sorted(arr)
for x, y in zip(arr, tarr):
sum1 += x
sum2 += y
arr_pre_max = max(arr_pre_max, x)
if arr_pre_max == y and sum1 == sum2:
ans += 1
return ans

最后一题没做看起来很难的样子

[leetcode]Weekly Contest 68 (767. Reorganize String&&769. Max Chunks To Make Sorted&&768. Max Chunks To Make Sorted II)的更多相关文章

  1. 767. Reorganize String - LeetCode

    Question 767. Reorganize String Solution 题目大意: 给一个字符串,将字符按如下规则排序,相邻两个字符一同,如果相同返回空串否则返回排序后的串. 思路: 首先找 ...

  2. LeetCode Weekly Contest 8

    LeetCode Weekly Contest 8 415. Add Strings User Accepted: 765 User Tried: 822 Total Accepted: 789 To ...

  3. leetcode weekly contest 43

    leetcode weekly contest 43 leetcode649. Dota2 Senate leetcode649.Dota2 Senate 思路: 模拟规则round by round ...

  4. LeetCode Weekly Contest 23

    LeetCode Weekly Contest 23 1. Reverse String II Given a string and an integer k, you need to reverse ...

  5. Leetcode Weekly Contest 86

    Weekly Contest 86 A:840. 矩阵中的幻方 3 x 3 的幻方是一个填充有从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等. 给定一个 ...

  6. LeetCode Weekly Contest

    链接:https://leetcode.com/contest/leetcode-weekly-contest-33/ A.Longest Harmonious Subsequence 思路:hash ...

  7. 【LeetCode Weekly Contest 26 Q2】Longest Uncommon Subsequence II

    [题目链接]:https://leetcode.com/contest/leetcode-weekly-contest-26/problems/longest-uncommon-subsequence ...

  8. 【LeetCode Weekly Contest 26 Q1】Longest Uncommon Subsequence I

    [题目链接]:https://leetcode.com/contest/leetcode-weekly-contest-26/problems/longest-uncommon-subsequence ...

  9. LeetCode Weekly Contest 18B

    1. 496. Next Greater Element I 暴力的话,复杂度也就1000 * 1000 = 1e6, 在1s的时限内完全可以. 当然,有许多优化方法,利用stack维护递减序列的方法 ...

随机推荐

  1. Python之操作Excel

    使用之前先导入三个模块: import xlwt #只能写Excel import xlrd #只能读Excel import xlutils #修改Excel,在原来的基础上修改 一.写EXCEL ...

  2. 后台管理系统之系统操作日志开发(Java实现)

    一,功能点 实现管理员操作数据的记录.效果如下 二,代码实现 基于注解的Aop日志记录 1.Log实体类 package com.ideal.manage.guest.bean.log; import ...

  3. swagger 指定字段不显示到文档里

    Swagger UI 隐藏指定接口类或方法 - 宁静致远 - CSDN博客https://blog.csdn.net/lqh4188/article/details/53538201 swagger ...

  4. js去除数组重复成员

    js去除数组重复成员 第一种思路是:遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中 用到两个函数:for ...in 和 indexOf() ...

  5. kubernetes资源类别介绍

    类别 名称 资源对象 Pod.ReplicaSet.ReplicationController.Deployment.StatefulSet.DaemonSet.Job.CronJob.Horizon ...

  6. 销售合同金额数据从Excel导入

    一.业务需求 1.新增了销售合同金额的字段,但是老数据没有这个字段:所以销售合同金额从销售合同附件的各品种金额之和. 2.制作好excel字段模板,将此模板发送给销售业务部门来统计并完成excel表格 ...

  7. vue实例相关2

    vue data中 对象/数组 不为空,即使定义为[]/{} new Vue({ el: '#main', data: { list: [], current: {}, aa:'' } }) cons ...

  8. LODOP 获取打印设计代码不带INIT初始化语句

    前面的博文生成JS代码模版和文档式模版,生成的是带初始化语句的模版,如果想要打印多个,可以循环多个任务,什么是一个任务,可查看本博客相关博文:Lodop打印语句最基本结构介绍(什么是一个任务)一个任务 ...

  9. ES 6 系列 - Promise

    一.含义 是异步编程的一种解决方案,es 6 将其变成了标准. 简单的说是一个容器,里面保存了某个未来才会结束的事件(通常是一个异步操作)的结果.语法上, Promise 是一个对象,从它可以获取异步 ...

  10. CSS3之box-sizing属性

    box-sizing本身有三个属性:content-box(默认).border-box和padding-box. content-box:border与padding均不算入width中: bord ...