0
点赞
收藏
分享

微信扫一扫

第五十九天-树状问题

boom莎卡拉卡 2022-02-23 阅读 34
算法

今天时间又有点晚了,研究公司的业务部门,职能部门和支撑部门研究了好久,把时间都耽误了,但是还算有点心得体会。得出的结论还真的就是在公司晋升基本靠熬资历看运气,干技术没前途只能用业余时间自学努力掌握技术准备跳槽,反正就是哪一条路都不好走。目前我是准备走技术了,晋升太悬了也熬不起,还是技术掌握在自己手里比较踏实。

今日进度:
1.坚持听网课,坚持刷题
2.坚持早睡,这个今天估计晚了,明天可能早点
3.坚持锻炼,可能只能明天早上了
4.坚持录小王子
5.坚持记录

学习笔记:
1.横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源。纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源

2.电商网站开发模块:用户模块开发,分类管理模块开发,商品管理模块开发,购物车模块开发,收货地址管理模块开发,支付模块开发,订单管理模块开发

3.90. 子集 II
给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。
解集不能包含重复的子集。返回的解集中,子集可以按 任意顺序排列。

解题思路:遍历数组,分别对选取当前元素和不选取当前元素做递归,设置一个visited数组来记录当前的状态,如果不选取,传入false,反之传入true。如果遇到重复的元素,就直接跳过,直到遍历完整个数组,将一组子集添加到结果集,再进行回溯。

class Solution {
    List<List<Integer>> res = new ArrayList<List<Integer>>();
    List<Integer> tmp = new ArrayList<Integer>();
    public List<List<Integer>> subsetsWithDup(int[] nums) {
        Arrays.sort(nums);
        dfs(false, nums, 0);
        return res;
    }
    public void dfs(boolean visited, int[] nums, int index){
        int n = nums.length;
        if(index == n){
            res.add(new ArrayList<Integer>(tmp));
            return;
        }
        dfs(false, nums, index+1);
        if(!visited && index>0 && nums[index] == nums[index-1]){
            return;
        }
        tmp.add(nums[index]);
        dfs(true, nums, index+1);
        tmp.remove(tmp.size()-1);
    }
}

4.401. 二进制手表
二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。
给你一个整数 turnedOn ,表示当前亮着的 LED 的数量,返回二进制手表可以表示的所有可能时间。你可以 按任意顺序 返回答案。
小时不会以零开头:
例如,“01:00” 是无效的时间,正确的写法应该是 “1:00” 。
分钟必须由两位数组成,可能会以零开头:
例如,“10:2” 是无效的时间,正确的写法应该是 “10:02” 。
示例 1:

解题思路:采用枚举法,将小时和分钟的所有情况的二进制和列出来,如果和目标值相同,说明这是一组满足条件的情况,将它加入结果集即可。

class Solution {
    public List<String> readBinaryWatch(int turnedOn) {
        List<String> res = new ArrayList<String>();
        for(int h=0; h<12; h++){
            for(int m=0; m<=59; m++){
                if(Integer.bitCount(h)+Integer.bitCount(m) == turnedOn){
                    res.add(h+":"+ (m < 10 ? "0" : "" )+m);
                }
            }
        }
        return res;
    }
}

今天实在太晚了,明天争取不要想那么多,晚上回来就按照计划加紧干,明天继续加油!

举报

相关推荐

0 条评论