BeRichOk
BeRichOk
全部文章
分类
归档
标签
去牛客网
登录
/
注册
BeRichOk的博客
全部文章
(共20篇)
题解 | #N皇后问题#
解法:一行一行地填,recursive(int start, int end);表示选择从start行到n行的元素递归结束的条件是:start == n, 即所有的位置都已经选好了,而且都是符合条件的(不符合条件的话会中途退出)对于某一行来说,从0到n的位置(从做到右)选它的列坐标它所在的列不能有皇...
2023-03-17
0
402
题解 | #字符串的排列#
和《有重复数字的全排列》是一样的,有两种解法,第一种是使用选择和撤销,第二种是交换解法1: 选择和撤销每个位置的值都可以从所有的元素中选择,选择了当前位置的元素之后,再选下一个元素的,知道选完所有的值,得到一条结果然后撤销,让当前位置选下一个元素,如此循环,知道该位置选了不同的元素 import j...
2023-03-16
0
363
题解 | #岛屿数量#
解题思路:访问节点,如果该节点是1,那么将岛屿数量加一,同时将与它相临的1找出来,mark为0,因为这么多相邻的1只算一个岛屿而第二步将相邻的1找出来mark为0有两种办法: 深度优先(depth first search)和广度优先(breadth-first-search)具体实现1 dfs: ...
2023-03-16
0
297
题解 | #LRU Cache#
解题思路:最近访问的元素放在第一个,其他的往后挪,可以用双向链表LinkedList来实现需要实现两个方法:put和getget的时候需要调整优先级,要把当前访问的item移到第一个put需要实现更新/增加/替换的操作更新:key已经存在的情况,找到对应的item,更新value增加:key不存在,...
2023-03-07
0
367
题解 | #有重复项数字的全排列#
解法:选择撤销和没有重复数字的全排列相比,选择的时候要多加一个条件如果本轮迭代中,相同的数字已经被选择了,那么就不要选,其他情况就还是一样的如果判断本轮迭代中相同的数字已经被选择首先看会出现相同数字的情况, 出现相同数字的时候:num[index] == num[index - 1], 除此之外加一...
2023-02-22
0
360
题解 | #没有重复项数字的全排列#
解法:定好第一位(递归)每个元素都可以作为第一个元素,当它作为第一个元素时,其他元素进行全排列,再把他们拼起来而数组不是很好操作,可以先转为列表,这样在删除某个元素的时候不需要移动数组后面的元素 import java.util.*; public class Solution { pub...
2023-02-20
0
315
题解 | #链表的奇偶重排#双指针|借助队列
解法1: 双指针交替指针odd和even相互只想对方的下一个节点以构造对应的链,最后可以得到odd链和even链,再让odd链的尾节点指向even链的头节点需要注意边界条件,也就是退出while循环的条件,可以分两个case来考虑: 链表节点为奇数时,链表节点为偶数时当链表节点为奇数时,even =...
2023-02-19
0
325
题解 | #单链表的排序#快慢指针归并排序
解法:归并排序归并排序需要将链表分成长度均等的左右两部分,分别对两部分进行排序之后再合并如何把两个链表分成长度均等的两部分? 快慢指针 import java.util.*; public class Solution { /** * * @param head Lis...
2023-02-19
0
340
题解 | #删除有序链表中重复的元素-II#遍历|递归
解法1:遍历然后删除所有的用一个临时变量conpared来存储当前需要比较的值如果发现这个值是重复的,那么就用while循环找到最后一个重复的节点,直接删除这一堆重复的点prev.next = current.next;如果没有发现重复的,那就prev继续往下去遍历每一轮结束都要重新让current...
2023-02-18
0
361
题解 | #删除有序链表中重复的元素-I#遍历
解法1:遍历挨个遍历,同时保存上一个节点的值,如果当前节点的值等于上一个节点的值就删除,否则就继续遍历 import java.util.*; public class Solution { public ListNode deleteDuplicates (ListNode head) {...
2023-02-17
0
277
首页
上一页
1
2
下一页
末页