Day10和为s的两个数字+扑克牌中的顺子+二叉树的镜像

2021-06-22  本文已影响0人  吃掉夏天的怪物

终于第十天了,好巧不巧三道简单题hhh

TODO:

  1. 注意 :和为s的两个数字可以用双指针的方法
  2. 重新做扑克牌中的顺子
  3. 熟练使用递归

剑指 Offer 57. 和为s的两个数字(简单)

美团面试就考了这道题,做的很垃圾。刚做了一下看了时间效率...oh 突然知道为什么不行了...
这题可以双指针啊!!💔面试用的unordered_map,刚做的那遍用的set

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int i = 0, j = nums.size()-1;
        while(i < j){
            int temp = nums[i] + nums[j];
            if(temp == target) return {nums[i],nums[j]};
            else if(temp < target){i++;}
            else {
                j--;
            }
           
        }
        return {};

    }
};

剑指 Offer 61. 扑克牌中的顺子(简单)

emmm一不小心看了题解。5 张牌是顺子的 充分条件①除大小王外,所有牌 无重复(因为大小王可以成为任何牌 ;②设此 5 张牌中最大的牌为max ,最小的牌为 min (大小王除外),则需满足:
max - min < 5,一旦大于5,如1,0,0,0,6即使剩下的都是大小王也不够补

class Solution {
public:
    bool isStraight(vector<int>& nums) {
        vector<int> map(14);        //构建哈希集合
        int minValue = 15, maxValue = 0;
        for(int n : nums) 
        {
            if(map[n] >= 1) return false;   //重复数字,出错
            if(n == 0)  continue;           //遇到大小王,跳过
            minValue = min(minValue, n);
            maxValue = max(maxValue, n);
            ++map[n];
        }
        return maxValue - minValue <= 4;    
    }
};

剑指 Offer 27. 二叉树的镜像(简单)

这种题一看就开始害怕,不过得先整理清楚思路。应该是一个简单递归,虽然做出来了,但是做了还挺久...

class Solution {
public:
    TreeNode* newroot;
    TreeNode* mirrorTree(TreeNode* root) {
        if(root == nullptr) return nullptr;
        newroot = Treebuild(root,newroot);
        return newroot;
    }
   TreeNode* Treebuild(TreeNode* root, TreeNode* newroot){
        if(root == nullptr) return nullptr;
        newroot = new TreeNode(root->val);
        newroot->left = root->right != nullptr?Treebuild(root->right,newroot->right):nullptr;
        newroot->right = root->left != nullptr?Treebuild(root->left,newroot->left):nullptr;
        return newroot;
    }
};

效果似乎也一般:


image.png

就很玄学,注释了一句后就100%,总觉得不应该影响效率才是,毕竟都执行不到那一句


image.png

题解没有新建一棵树,就是在原来的树上进行镜像:
剑指 Offer 27. 二叉树的镜像(递归 / 辅助栈,清晰图解)(https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/solution/mian-shi-ti-27-er-cha-shu-de-jing-xiang-di-gui-fu-/)

上一篇 下一篇

猜你喜欢

热点阅读