ARTS-1(生活的感悟)

Algorithm

题目描述
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
示例 1:
给定 nums = [1,1,1,2,2,3],
函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。
你不需要考虑数组中超出新长度后面的元素。
示例 2:
给定 nums = [0,0,1,1,1,1,2,3,3],
函数应返回新长度 length = 7, 并且原数组的前五个元素被修改为 0, 0, 1, 1, 2, 3, 3 。
你不需要考虑数组中超出新长度后面的元素。
说明:
为什么返回数值是整数,但输出的答案是数组呢?
解题思路
首先,数组为空的时候特殊判断一下。然后用一个num计数标记,如果相邻两个数相等并且num小于2的时候直接后移,如果相邻两个数不相等,则后移完成后将num置为0。
代码实现

class Solution {
public int removeDuplicates(int[] nums) {
        if(nums.length==0){
            return 0;
        }
        int num = 0;
        int j = 0;
        for(int i=1;i<nums.length;i++){
            if(nums[j]==nums[i]){
                num++;
                if(num<2){
                    nums[++j] = nums[i];
                }
            }else{
                nums[++j] = nums[i];
                num = 0;
            }
        }
        return j+1;
    }
}

Review

《6 Habits of Super Learners》
成为一个超级学习者是你在21世纪取得成功所需要的最重要的技能之一。在这个技术变革的时代,保持领先取决于持续的自我教育——终生掌握新的模式、技能和思想。分享六个超级学习者的优良习惯。

  1. Super learners read a lot(阅读量很高)
    读书之于心灵,犹如运动之于身体。它给了我们在广阔的空间、时间和历史中漫游的自由,并提供了对思想、概念、情感和知识体的更深刻的看法。在一个信息日益更新的时代,阅读是不断学习、获取知识的最佳来源。
  2. Super learners view learning as a process(学习是一个过程)
    超级学习者重视这一过程。他们没有最终目标,他们寻求持续改进。他们不断掌握新的原则,过程,世界观,思维模式等。对知识的“持续,自愿和自我激励”的追求。
  3. They adopt a growth mindset(培养成长心态)
    培养成长或适应能力强的心态可以帮助您更加专注于人生中最理想的目标。它可能会影响您的动力,并使您更容易看到学习和发展能力的机会。
  4. Super learners teach others what they know(把自己知道的教会给别人)
    学习和记住信息的更好方法是一半时间学习,一半时间共享。例如,不要读完书,而是要阅读50%的内容,然后尝试回忆,分享或写下您学到的关键思想,然后再继续。
  5. Effective learners take care of their brains(照顾好自己的大脑)
    水果和蔬菜可以抵抗与年龄有关的氧化应激,减缓认知能力下降有关的食物-蓝莓,蔬菜(多叶蔬菜-甘蓝,菠菜,西兰花),全谷类、鱼类和豆类中获取蛋白质并选择健康的不饱和脂肪(橄榄油)而不是饱和脂肪(黄油) 。
  6. They take short breaks, early and often(经常性的给与大脑休息)
    更好的休息时间可以帮助大脑在休息期间巩固记忆。无论您选择学习什么,最重要的是优化休息间隔的时间以获得更好的结果。少于30分钟的学习时间还不够,但是超过50分钟的就太多了,您的大脑无法一次吸收。

Tips

OAuth2.0授权方式:

  1. 授权码模式(authorization code)
  2. 简化模式(implicit)
  3. 密码模式(resource owner password credentials)
  4. 客户端模式(client credentials)
    OAuth2.0简单说就是一种授权的协议,授权码模式是功能最完整、流程最严密的授权模式。它的特点就是通过客户端的后台服务器,与“服务提供商”的认证服务器进行互动。其实总结一下,Oauth2.0用授权码方式,无非就是用户访问客户端就直接重定向到认证服务器,然后输入账号密码等等通过验证后,认证服务器会重定向到redirect_uri并将授权码附在url上,然后再拿授权码去认证,认证通过发放令牌,登录成功
    步骤如下:
    1.用户访问客户端,后者将前者导向认证服务器
    2.用户选择是否给予客户端授权
    假设用户基于授权,认证服务器将用户导向客户端事先指定的"重定向URI",同时符上一个授权码
    3.客户端收到授权码,附上早先的“重定向URI”,向认证服务器申请令牌,这一步是在客户端的后台服务器上完成的,对用户不可见。
    4.认证服务器核对了授权码和重定向URI,确认无误之后,向客户端发送令牌(accessToken)和更新令牌(refresh token)
    举例:
    我们以优酷为例,讲述流程。
    (A)优酷向用户展示,“我”可以支持QQ、微信、支付宝等第三方式登录。用户选择其中一种,例如QQ,则跳转至QQ界面(User-Agent),通常为WEB界面。此时,若用户未登录,则要求用户登录,若已登录,则询问是否授权,以及展示授权后会获得哪些权限。
    (B)用户点击授权,触发申请。
    (C)假设授权通过,QQ认证服务器将用户导向优酷事先指定的”重定向URI”(redirection URI),同时附上一个Authorization Code。
    (D)优酷收到授权码,附上早先的”重定向URI”,向认证服务器申请Access Token。这一步是在优酷的后台的服务器上完成的,对用户不可见。
    (E)认证服务器核对了授权码和重定向URI,确认无误后,向优酷发送访问令牌(access token)和更新令牌(refresh token)。

Share

分享一段瓦尔登湖中梭罗对于生活的感悟:我到林中居住,因为我希望生活得从容一些,只面对基本的生活事实,看看是否能够学到生活要教给我的东西,而不要等到死之将临时发现自己没有生活过。我不希望过不是生活的生活,活着是这样珍贵;也不希望过退隐的生活,除非必需如此。我想要深深地生活,吸取生活的全部精髓,过坚强的、斯巴达式的生活,除去一切不是生活的东西,刈出大片地带,仔细修整,把生活逼入困境降到最低的地位,如果证明生活是平庸的,那么就把它全部的、真正的平庸之处认识清楚,公之于众;而如果生活是崇高的,那就去亲身体会它,然后在我的下一次旅行时给以真切的记载。在我看来,多数人都奇怪地拿不准生活究竟是属于魔鬼的,还是属于上帝的,都多少有点轻率地得出结论,认为人生在世的主要目的是“赞美上帝,永享神恩”。
这本书断断续续看了很久,最终还是留了一些章节没看完,心里想的是以后还会再读的吧。梭罗没有真正意义上过离群的生活,但他是真正意义上的感悟生活感悟生而为人的简单,他常说的常想的是如果你不去想拥有什么,其实生活就会变得简单而可循,他是独特而又自由的,是他所眺望到的一切的君王。他的内心有一种追求更高的或者说精神生活的本能,同时内心又有另一种追求原始地位和野蛮生活的本能。很多时候或许我们都挣扎在了物质里,认为那是人类发展的必需品,在追逐这些的路上失去了对生活真正的体验和思考。不要以复杂的方式来解决问题,也不要以多余的钱和精力去购买多余的东西,或许这样我们的生活就会变得更加简单却充满意义。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值