每天进步一点点【2019.8.21】

一、反转字符串【leetcode 344】

题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出;
要求:原地修改数组,使用长度为O(1)的额外空间解决问题;
输入
["h","e","l","l","o"]
输出

["o","l","l","e","h"]

分析:在考虑满足题目原地修改数组要求,使用双指针对数组中元素进行交换;
代码:

// 双指针
    public  void reverseString(char[] s) {
        int start = 0,end = s.length-1;
        while (start

存在问题:考虑到交换的时间复杂度问题
改进思路:使用异或运算实现交换的目的,加快速度
实现

public static void reverseString1(char[] s) {
    int len = s.length;
    int half = len/2;
    int end = len-1;
    for (int i = 0; i < half&&end>=half;  ++i,--end) {
        s[i] ^= s[end];
        s[end] ^=s[i];
        s[i] ^= s[end];
       }
    }

二、每日一点心理学

暗示效应
原理: 指在无对抗的条件下,用含蓄、抽象诱导的间接方法对人们的心理和行为产生影响,从而诱导人们按照一定的方式去行动或接受一定的意见,使其思想、行为与暗示者期望的目标相符合;
启发:管理中常用的是语言暗示,如班主任在集体场合对好的行为进行表扬,就是对其他同学起到暗示作用;

三、每日一句
In one kiss, you'll know all I haven't said.

你可能感兴趣的:(每天进步一点点【2019.8.21】)