Day8 圆圈中最后剩下的数字+机器人的运动范围+从上到下打印二叉树

TODO:

  1. 能推出约瑟夫环问题的状态转移方程
    2.重做机器人的运动范围

一、剑指 Offer 62. 圆圈中最后剩下的数字(简单)

😥似会非会的。这个题解讲的很不错https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/solution/jian-zhi-offer-62-yuan-quan-zhong-zui-ho-dcow/

image.png

class Solution {
public:
    int lastRemaining(int n, int m) {
        int x = 0;
        for (int i = 2; i <= n; i++) {
            x = (x + m) % i;
        }
        return x;
    }
};

二、剑指 Offer 13. 机器人的运动范围(中等)

应该是一个很典型的递归问题吧。但是一看题目就怕了,于是看题解后写出来的。
题解妙就妙在对坐标每位相加做的巧妙处理,从1->2增加了1从9->10减少了8
Krahets简直是题解之光!写的题解都对我这种小白太友好了!https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/solution/mian-shi-ti-13-ji-qi-ren-de-yun-dong-fan-wei-dfs-b/

class Solution {
public:
    int dfs(int i, int j, int si,int sj,vector<vector<bool>>&vis, int m, int n, int k){
        if(i >= m || j>=n || si+sj>k||vis[i][j]) return 0;
        vis[i][j] = 1;
        return 1 + dfs(i+1,j, (i+1)%10 !=0?si+1:si-8,sj,vis,m,n,k) + dfs(i,j+1,si,(j+1)%10 !=0?sj+1:sj-8,vis,m,n,k);//⭐
    }
    int movingCount(int m, int n, int k) {
        vector<vector<bool>> vis(m,vector<bool>(n));
        return dfs(0,0, 0,0,vis,m,n,k);
    }
};

题解里还有个BFS的方法也很棒!

三、 剑指 Offer 32 - I. 从上到下打印二叉树(中等)

这道题,一看就觉得是一道简单的BFS题。于是很轻松的写了出来!🙂

class Solution {
public:
    vector<int> levelOrder(TreeNode* root) {
        if(root == nullptr) return {};
        TreeNode* head = root;
        queue<TreeNode*> que;
        vector<int> ans;
        que.push(head);
        while(!que.empty()){
            int ts = que.size();
            while(ts--){
                TreeNode* temp = que.front();
                que.pop();
                if(temp == nullptr) continue;
                ans.push_back(temp->val);
                if(temp->left) que.push(temp->left);
                if(temp->right)que.push(temp->right);
            }
        }
        return ans;
    }
};
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • to-do:看一下别人写的题解 https://github.com/981377660LMT/algorithm...
    winter_sweetie阅读 4,233评论 1 0
  • 题目一:不分行从上到下打印二叉树从上往下打印出二叉树的每个节点,同层节点从左至右打印。 练习地址 https://...
    孙强Jimmy阅读 4,249评论 0 2
  • 题目 0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最...
    人一己千阅读 1,400评论 0 0
  • 背包问题 描述在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i]动态规划...
    杰米阅读 3,304评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,758评论 28 53

友情链接更多精彩内容