我要来
我要来
全部文章
分类
题解(60)
归档
标签
去牛客网
登录
/
注册
勇敢扭扭
学如逆水行舟,行舟不一定要划水。
全部文章
(共60篇)
题解 | #最长公共前缀#
思路:挨个比较1.设置一个列索引指针,每循环一次加12.循环体内for循环看当前字符串下标为col的字符是否与下一个字符串的下标为col的字符相等,不相等则返回res字符串。3.for循环结束把下标为col的字符加入到res中。 public String longestCommonPrefix (...
2021-08-02
1
484
题解 | #删除有序链表中重复的元素-II#
思路:双指针,一个指针在前面找,找到了判断一下 1)确定是单个不重复结点,就加入到链表,并移动pre。 2)否则就执行while循环跳过当前重复的群体,然后从下一个开始,把pre指针指向此不重复结点,但不移动pre,还需要判断,重复1-2步骤。 public ListNode delet...
2021-08-02
0
393
题解 | #最长公共子序列-II#
思路:动态规划,有一个朋友讲的特别详细,可以去参考下,相信一定会有收获。csdn地址:https://blog.csdn.net/hrn1216/article/details/51534607 public String LCS (String s1, String s2) { /...
2021-08-02
0
319
题解 | #链表中环的入口结点#
思路:用list存储访问过的结点,若再次访问到,则返回这个结点。循环结束则返回null,无环。 public ListNode EntryNodeOfLoop(ListNode pHead) { ArrayList<ListNode> list=new ArrayList...
2021-08-01
0
437
题解 | #接雨水问题#
思路:双指针接水的多少取决于短板。因此指针left与right一左一右,每次取出最小值,从left往后寻找比最小值小的挡板,二者之差为当前挡板的接水量,直到遇到比它高的。同理,right也往中间寻找,直到遇到比它高的挡板。此时一轮大循环结束,重新计算left与right之间的最小值,开始新一轮的大循...
2021-07-31
0
426
题解 | #合并两个有序的数组#
思路:这题乍一看就想到是插入排序,按照插入排序的思路做就可以。 public void merge(int A[], int m, int B[], int n) { for(int i=m;i<m+n;i++){ int temp=B[i-m]; ...
2021-07-31
1
342
题解 | #最长无重复子数组#
思路:双指针1.一个指针start指向当前不重复队列的头,一个指针end指向当前不重复队列的尾部。 1)若arr[end]与当前队列重复了,则start向后移动一位,并把arr[start]从当前队列删除。 2)不重复 1)重新计算最大长度maxlen 2)e...
2021-07-31
1
382
题解 | #判断链表中是否有环#
思路:快慢指针1.设置两个指针,一个一次走一步,一个一次走两步。 1)如果有环,最终两个指针会相遇。 2)若有指针提前到达了链表末尾,即=null,则无环。 public boolean hasCycle(ListNode head) { if(head==null){ ...
2021-07-31
0
423
题解 | #二分查找-II#
思路:1.当目标值target大于中间值时,左端指针l=mid++。2.当目标值小于等于中间值时,右端指针h=mid。把等于这种情况放在小于一起,使得整体逐渐向左移动,就能找到最左边。相似的方法也可以找到最右边。3.判断最终的nums[l]是否等于目标值target,等于则返回l,否则返回-1(没找...
2021-07-31
1
413
题解 | #求二叉树的层序遍历#
思路:使用两个链表,来回跳跃。 链表的作用其实是模拟队列的功能。 首先queue1装载根结点root 将queue1的结点依次从头部出队列 1)若当前出队列的结点有左子结点,则将其入队列queue2. 2)若当前出队列的结点有右子结点,则将其入队列queue2. 3)将当前出队列的结点放入l...
2021-07-31
0
445
首页
上一页
1
2
3
4
5
6
下一页
末页