首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
遍地狼烟
获赞
16
粉丝
5
关注
7
看过 TA
21
浙江工业大学之江学院
2022
C工程师
IP属地:浙江
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑遍地狼烟吗?
发布(3)
刷题
遍地狼烟
2023-06-16 15:18
C工程师
题解 | #最长不含重复字符的子字符串#
整体思路:维护两个位置的坐标,维护一个最长子串长度。一个是子串起点下标start,一个是终点下标end(注意:这里end一直在++,所以是子串终点的下一个位置,那么长度就是end-start,而不需要再+1)。然后用一个数组arr存储每个字符对应的字符串中的位置,end即终点每次循环遍历字符串时一直+1,start起点初始为1。当end遇到字符串中这个字符在数组arr中已经有之前存储过下标,说明当前子串有重复的字符了,那就先判断当前子串长度是否比max大,大的话max为当前子串长度。然后把start移到arr[s[i]] + 1位置(arr[s[i]]位置已经重复,所以+1),然后再把原sta...
0
点赞
评论
收藏
转发
遍地狼烟
2021-09-23 20:53
已编辑
C工程师
题解 | #解码#
整体思路:建立一个一维数组arr[len],用来记录每一个位置当前有多少种译码结果。主要判断有0的情况:1.连续俩个零代表译码有误,输出零 2.如果第一个位置就是'0',输出零 3.当前位置为'0',前一个位置不是'1'或'0',输出零否则,arr[0]记录为1,若果第二个位置是符合上面输出零的情况,arr[1]记录为1,否则记录为2,接下来开始循环判断,只要前一位置的值与当前的值小于26,说明就有俩种译码方式,一种是俩个字符各一个,一种是直接俩位数译码,那么当前的译码方式就有arr[i-1]+arr[i-2]。最后,需要判断...
0
点赞
评论
收藏
转发
遍地狼烟
2021-09-20 22:22
C工程师
题解 | #万万没想到之抓捕孔连顺#
主要变量:first(当arr[last]-arr[first]>D时,循环加1,直到小于D或first=last结束),last(一直加一输入)。主要思路:首先不能位置重复,只需要根据输入的last++位置往前寻找即可,因为每次的last都不一样,所以位置一定不会一样,每次last+1都通过while循环动态维护first的位置,一旦确定,则可以用数学方法确定俩者之间所有的排列组合上述数学思路:举例:(1 2 3 4 5)--6 6的位置即last位置,已确定,而包括first(1)的值有5个,在他们5个中找2个与last排列组合成3个数,C(5,...
0
点赞
评论
收藏
转发
1
工具箱
TA的圈子
暂未加入圈子
TA的圈子
TA的笔记
暂无笔记
TA的笔记
登录
0
天
已登录
0
天
连续登录
0
人
今日访客
牛客网
牛客企业服务