栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【笔试】2022游卡校招技术岗笔试

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【笔试】2022游卡校招技术岗笔试

1、给你一个字符串 S,找出所有长度为 K 且包含重复字符的子串,请你返回全部满足要求的子串的数目。
思路:利用两个指针维护k长度的串,用map记录串中出现的字符,用set记录当前k长度的串中重复的字符,两个指针同步移动时候注意右边指针字符的加入检查和左边移除的字符检查,检查当前k长度字符串是否重复字符条件就是set中是否有元素。
代码:

import java.util.*;


public class Solution {
    
    public int numKLenSubstrRepeats (String s, int k) {
        int len=s.length();
        if(len maps=new HashMap<>();
        Set set=new HashSet<>();
        while(right1){
                set.add(rc);
            }
            if(set.size()>0) ans++;
        }
        return ans;
    }
}

2、给定一个可包含重复数字的序列 nums ,按序列内字典升序返回所有不重复的全排列。
其中序列内字典升序指的是, 序列内从左到右的非降序排列,例如 nums=[1,2,3], 则因为[1,2,3] < [1,3,2], [3,1,2] < [3,2,1], [1,2,3]要先于[1,3,2]输出,[3,1,2]要先于[3,2,1]输出。

dfs全排列即可,用vis数组标记每个位置的数是否被用过,用hashset去重,treeset排序,但是这个treeset排序有问题,导致最终没能全a。

import java.util.*;


public class Solution {
    
    public int[][] UniquePerm (int[] nums) {
        Set> sets=new TreeSet<>(new Comparator>() {
            @Override
            public int compare(List list1, List list2) {
                for(int i=0;ilist2.get(i)) return 1;
                }
                return 0;
            }
        });
        boolean vis[]=new boolean[nums.length];
        for(int i=0;i());
        int ans[][]=new int[sets.size()][nums.length];
        int cnt=-1;
        for(List list:sets){
            cnt++;
            for(int i=0;i> sets,List list){
        if(list.size()==nums.length){
            List tempList=new ArrayList<>(list);
            sets.add(tempList);
            return;
        }
        for(int i=0;i 

3、将两个降序链表合并为一个新的 降序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

import java.util.*;



public class Solution {
    
    public ListNode MergeTwoLists (ListNode list1, ListNode list2) {
        ListNode res=new ListNode(0);
        ListNode p=res;
        while(list1!=null&&list2!=null){
            if(list1.val>=list2.val){
                p.next=new ListNode(list1.val);
                list1=list1.next;
            }else{
                p.next=new ListNode(list2.val);
                list2=list2.next;
            }
            p=p.next;
        }
        while(list1!=null){
            p.next=new ListNode(list1.val);
            list1=list1.next;
            p=p.next;
        }
        while(list2!=null){
            p.next=new ListNode(list2.val);
            list2=list2.next;
            p=p.next;
        }
        return res.next;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298145.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号