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. 百度地图开发者API学习笔记一(转载)

    一,实现功能: 在地图上标记点,划线等操作.如下图. 2.代码: <!DOCTYPE html> <html> <head> <meta http-equiv ...

  2. 【kindle笔记】之 《恶意》-2018-4-20

    [kindle笔记]读书记录-总 在答辩和考试和各种大作业的重压以及两天后全校停电的巨大挤压中,一口气读完了恶意这本书. 这本书是我读的东野圭吾的第二本书.第一本是心心念念的<解忧杂货店> ...

  3. Proper usage of Java -D command-line parameters

    https://stackoverflow.com/questions/5045608/proper-usage-of-java-d-command-line-parameters https://c ...

  4. [转帖]SAP一句话入门:Production Planning

    SAP一句话入门:Production Planning http://blog.vsharing.com/MilesForce/A617692.html SAP是庞大的,模块是多多的,功能是强大的, ...

  5. javax.validation.ValidationException: Unable to create a Configuration, because no Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath.

    项目依赖 <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifa ...

  6. 用Python来操作redis 以及在Django中使用redis

    什么是Redis? Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值可以包 ...

  7. centos7之vm11添加网卡

    需求 根据实际需求原来有一块网卡,现在需要新加一块网卡做集群. 1.在虚拟机添加一块网卡,开机后ip a查看是不是新加了一块网卡,下图是为了讲解,其实已经是做完的状态. 2.上满我们看到新加了一块网卡 ...

  8. python之路--反射

    一 . isinstance, type, issubclass isinstance 可以判断该对象是否是XXX家族体系中的(只能往上判断) class Base: pass class Foo(B ...

  9. Python:matplotlib绘制直方图

    使用hist方法来绘制直方图:     绘制直方图,最主要的是一个数据集data和需要划分的区间数量bins,另外你也可以设置一些颜色.类型参数: plt.hist(np.random.randn(1 ...

  10. Java多线程6:Synchronized锁代码块(this和任意对象)

    一.Synchronized(this)锁代码块 用关键字synchronized修饰方法在有些情况下是有弊端的,若是执行该方法所需的时间比较长,线程1执行该方法的时候,线程2就必须等待.这种情况下就 ...