📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
查看: 1036| 回复: 4
跳转到指定楼层
上一主题 下一主题
收起左侧

[其他] 刷题相关疑问

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 美帝马甲 于 2020-11-3 07:03 编辑

大家好。我是码工。不过前10年经验都是embedded底层嵌入式。 2019年换了方向,终于转行进入互联网后端。
以前做嵌入式时,简历包装自己是做互联网的,面试一些大型互联网公司时,面官一问我项目,就露馅懵逼了。
近1年在web公司做了几个后端项目。

现在手痒痒了,疫情期间活少了许多,开始刷题。目前AC了615题,java实现
现在发现一个问题,leetcode上很多题,许多年前的解法,现在一run, 那效率惨不忍睹,例子太多了。
不知道现在刷题的筒子们,到底是用以前的经典解法,还是用solution中分数最高的解法,如果用后者,面试时如果
遇到SB面试官,只记得以前的经典解法,那不是躺枪?

上一篇:Leetcode 269 题BFS方法有一个test case有问题
下一篇:以后还会有缺米刷题的活动吗?
🔗
红A 2020-11-3 07:14:47 | 只看该作者
全局:
举个例子?
一般情况下通用解还好啊~ 只要不是暴力
回复

使用道具 举报

🔗
 楼主| 美帝马甲 2020-11-3 07:18:53 | 只看该作者
全局:
红A 发表于 2020-11-3 07:14
举个例子?
一般情况下通用解还好啊~ 只要不是暴力

太多了
例如: word ladder
我记得2016,2018时的通解就是: 创建节点,替换a到z,
现在用那个通解,排名垫底
现在优化解法是加两个set
public int ladderLength(String beginWord, String endWord, List<String> set) {
        Set<String> wordList = new HashSet<>(set);

        if(!wordList.contains(endWord))
            return 0;

        Set<String> beginSet = new HashSet<>();
        beginSet.add(beginWord);
        Set<String> endSet = new HashSet<>();
        endSet.add(endWord);
        int res = 1;

        while(!beginSet.isEmpty()){
            Set<String> tempSet = new HashSet<>();
            for(String word: beginSet){

                char[] chs= word.toCharArray();
                for(int i=0; i<chs.length; i++){
                    for(char c='a'; c<='z'; c++){
                        if(c==chs[i])
                            continue;
                        
                        char old=chs[i];
                        chs[i]=c;
                        String newWord=String.valueOf(chs);

                        if(endSet.contains(newWord))
                            return res+1;
                        
                        if(wordList.contains(newWord)){
                            tempSet.add(newWord);
                            wordList.remove(newWord);
                        }

                        chs[i]=old;
                    }
                }
            }

            if(tempSet.size()<endSet.size() ){
                beginSet=tempSet;
            }else{
                beginSet=endSet;
                endSet=tempSet;
            }

            res++;
        }

        return 0;
    }
回复

使用道具 举报

🔗
 楼主| 美帝马甲 2020-11-3 07:20:22 | 只看该作者
全局:
红A 发表于 2020-11-3 07:14
举个例子?
一般情况下通用解还好啊~ 只要不是暴力

我现在刷一些大厂高频题时,
目前感觉大概40%的题,解法都要删掉以前的方法, 用solution中的最优解
回复

使用道具 举报

🔗
红A 2020-11-3 07:22:25 | 只看该作者
全局:
美帝马甲 发表于 2020-11-3 07:20
我现在刷一些大厂高频题时,
目前感觉大概40%的题,解法都要删掉以前的方法, 用solution中的最优解

双向bfs确实是bfs的一个优化在这里。follow up吧感觉。
不至于吧。。感觉绝大多数还都是通解。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表