首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
laglangyue
获赞
116
粉丝
17
关注
3
看过 TA
36
男
上海理工大学
2021
Java
IP属地:浙江
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑laglangyue吗?
发布(221)
刷题
laglangyue
2020-07-23 19:27
已编辑
Java
剑指offer36-链表相交问题-python
文引 python面向对象,本人是java的,对于python理解欠佳,为朋友写此文。链表node,包括它的值val,还有一个next指针指向下一个nodepython的属性域都是在init里面定义的,私有属性用两个下划线开头由于视频面试手撕代码,要自己定义输入数据,自己构造了相交链表在本文的链表中,通过一个list来构造链表,由于是链表相交问题,又写一个链表拼接方法注意面向对象,方法是一个对象的,函数则是某个功能(面向过程) 链表相交就是两个链表汇聚,一般不认为是一个链表的尾部和另一个链表的头部相交链表相交有三种方法: hash查找,遍历一个链表,放入hash表,然后查找。在python中...
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-21 21:16
Java
剑指offer-57-二叉树的下一个结点
思路 分情况,总体上存在右子节点与没有,没有右子节点,分多种。 代码 public class Solution { public TreeLinkNode GetNext(TreeLinkNode pNode){ if(pNode==null){return null;} if(pNode.right!=null){ pNode=pNode.right; while(pNode.left!=null){ pNode=pNode.left; } ...
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-21 20:34
Java
剑指offer-56-删除链表重复节点
思路 用一个栈存储节点,过滤重复节点,当前与栈顶节点相等,就下一个节点,直到不同节点,把栈顶出栈,连接栈顶与当前。 代码 import java.util.*; public class Solution { public ListNode deleteDuplication(ListNode pHead){ if(pHead==null){return pHead;} ListNode p=new ListNode(0); ListNode head=p; p.next=pHead; Stack&l...
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-21 19:58
Java
剑指offer-55-链表环路的入口节点
思路 快慢指针法:快指针每时间走2个指针长度,慢指针走一个,第一次相遇,让一个指针回头链表头,两个指针速度均为1,从头再走 Set集合,当有第一个重复时候,就是入口节点 代码 public class Solution { public ListNode EntryNodeOfLoop(ListNode pHead) {if(pHead.next==null|| pHead.next==null||pHead.next.next==null){return null;} ListNode p1=pHead.next; ListNode p2...
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-21 18:55
Java
剑指offer-54-字符流中第一个不重复的字符
思路 队列存储字符流,如果队首出现的次数大于0,出队,insert直接入队。队列为空输出‘#’为了快速查询字符出现的次数,可以用数组存储,128是常见字符,256是全部字符,保险起见最好是256; 代码 import java.util.*; public class Solution { //字符出现次数 private int[] c=new int[128]; //字符流缓冲区 private Queue<Character> q=new LinkedList<>(); //Insert one char from str...
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-20 21:31
Java
剑指offer-53-表示数值的字符串
思路 诸位判断当前是+ - E e . 判断是否合法+- 出现在首位或者前面一位是E,eE,e 只能出现一次,并且不能出现在首和尾. 只能出现一次,不能在首尾,并且要在E,e的前面 代码 public class Solution { public boolean isNumeric(char[] str) { int cnt1 = 0, cnt2 = 0; for(int i = 0; i < str.length; i++){ System.out.println(i); if(str[i] == ...
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-20 21:04
Java
剑指offer-52-正则表达式
思路 本题太绕了,总体上动态规划当前如果pat[j]=str[i],或者pat[j]='.',那么刚好就是消去,dp[i][j]=dp[i-1][j-1]主要是当前是*,这个时候分为匹配0次,匹配1次,匹配多次,不匹配四种情况。 代码 public class Solution { public boolean match(char[] str, char[] pattern){ boolean[][] dp = new boolean[str.length + 1][pattern.length + 1]; dp[0][0] = true; ...
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-20 21:27
已编辑
Java
剑指offer-51-构建乘积数组
思路 去除本身,两边所有元素的和,如果可以用除法,所有元素之积除以本身。不能用除法,其实左边是累积,右边是倒序的累积先求两个辅助数组,累积数组和倒序累积数组。然后B[i]=help1[i-1]*help[i+1]; 代码 public class Solution { public int[] multiply(int[] A) { int n=A.length; int[] B=new int[n]; int[] help1=new int[n]; int[] help2=new int[n]; help...
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-20 19:33
Java
剑指offer-50-数组重复数字
思路 用一个数组当作hash表,本题注意判空数组 代码 public class Solution { public boolean duplicate(int numbers[],int length,int [] duplication) { duplication[0]=-1; if(numbers==null || numbers.length<=0){return false;} int[] hash=new int[length]; for(int i=0;i<numbers.length;i++)...
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-19 21:03
Java
剑指offer-49-把字符串转换成整数
思路 从后往前诸位相加,首先判断第一位是否是 ‘+’ 或 ‘-’ 代码 public class Solution { public int StrToInt(String str) { if(str.length()<=0){return 0;} boolean flag=false; int start=0,res=0; if(str.charAt(0)=='+' || str.charAt(0)=='-'){ start++; } if(str.ch...
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-19 20:21
已编辑
Java
剑指offer-48-不用加减法做加法
思路 不用加减法,只能考虑位运算,可以考虑。本人一开始考虑的是按位计算。 int s=Integer.parseInt(str,2),2表示基数事实上,加法器可以直接由异或得到 代码 public class Solution { public int Add(int num1,int num2) { while(num2!=0){ int add1=num1 ^ num2; int add2=(num1 & num2)<<1; num1=add1; nu...
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-19 20:03
已编辑
Java
剑指offer-47-不用结构语句和乘除求累加和
思路 本题不允许使用乘除运算符,还要结构语句,剩下的运算只有位运算和逻辑运算。 代码 public class Solution { public int Sum_Solution(int n) { int sum = n; boolean ans = (n>0)&&((sum+=Sum_Solution(n-1))>0); return sum; } }
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-19 19:41
Java
剑指offer-46-孩子们的游戏
思路 模拟,用队列模拟 递归, 考虑数组实现循环队列, f(n, m) = (m % n + x) % n = (m + x) % n 代码 import java.util.*; public class Solution { public int LastRemaining_Solution(int n, int m) { Queue<Integer> queue=new LinkedList<>(); for(int i=0;i<n;i++){ queue.add(i); }...
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-27 16:13
已编辑
Java
剑指offer-44-反转单词顺序
思路 栈+指针利用栈来反转句子,利用一个指针指向空格,for循环中的i算是尾指针,指向下一个空格。对每个单词和空格入栈。时间复杂度O(n) split分割成字符串然后从后往前拼接 代码 栈+指针 public class Solution { public String ReverseSentence(String str){ Stack stack = new Stack(); int l = 0; for(int i = 0; i < str.length(); i++){ if(str.charAt...
剑指offer与数据结构
0
点赞
评论
收藏
转发
laglangyue
2020-07-18 19:09
Java
剑指offer-45-扑克牌顺子
思路 set集合,有重复直接返回flase,否则max-min<5,注意要去除0的min和max 排序,遍历,等于0记录cnt++,如果number[i]-number[i-1]-1大于cnt,返回false,否则cnt减去对应的值。 代码 import java.util.*; public class Solution { public boolean isContinuous(int [] numbers) { if(numbers.length!=5){return false;} Set<Integer> set=new ...
剑指offer与数据结构
0
点赞
评论
收藏
转发
1
2
3
4
5
6
15
工具箱
TA的圈子
暂未加入圈子
TA的圈子
TA的笔记
暂无笔记
TA的笔记
登录
0
天
已登录
0
天
连续登录
0
人
今日访客
牛客网
牛客企业服务