![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客-题库
牛客里面的题库
时光 末路
这个作者很懒,什么都没留下…
展开
-
6. Z 字形变换
暴力破解思路: 行数为多少行就定义长度为多大的字符串数组 遍历字符串,初始下表为一,字符串添加方向为增,每次下标移动时,将字符追加到该下标字符串后面,下标移动方向有两个转折点(一个是等于0的时候,将下标方向改为增,另一个是为最后一行的时候,将下标方向改为减)。 最后将字符串数组按顺序相加即为最后答案。 需要注意的是:如果行数为1,则不能转向,直接返回原字符串即可。 class Solution { public String convert(String s, int numRows) {原创 2022-04-16 22:46:37 · 171 阅读 · 0 评论 -
5. 最长回文子串
思路: 假设当前字符为回文的中点,回文数有两种形式(abba和abcba) 当当前字符与前一个字符相同时相同时,满足第一种形式,但是如果与下一个字符也相同时,也满足第二种显示。所以第一种情况需要判断。 其余情况都当成子串有中心字符的情况处理。 class Solution { public String longestPalindrome(String s) { char[] chars = s.toCharArray(); int max = -1;原创 2022-04-16 15:32:22 · 174 阅读 · 0 评论 -
4. 寻找两个正序数组的中位数
思路: 将两个数组排序放在临时数组中 判断总元素个数,如果为奇数,直接取中间的数返回。如果是偶数,则将中间两个数除以2.0返回即可。 class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int i = 0, j= 0,start = 0,len = nums1.length+ nums2.length; int [] res = new int[nums原创 2022-04-16 11:44:29 · 166 阅读 · 0 评论 -
3. 无重复字符的最长子串
思路: 定义一个数组,用来标记前一个重复元素的位置 遍历字符,判断当前字符是否有重复,如果没有重复,那么将当前字符下标记录下来(该标记为-1或者该标记在起始位置前面)。如果重复,则计算起始位置到前一个字符的字符个数与之前无重复字符个数的最大值,然后将起始位置移到重复字符的下一个位置,将重复字符的位置改为当前字符下标。 有一种情况就是最后一个字符为非重复字符,需要特判。 class Solution { public int lengthOfLongestSubstring(String s) {原创 2022-04-15 22:39:15 · 65 阅读 · 0 评论 -
21. 合并两个有序链表
思路: 创建一个新列表,new一个新节点。 将两个节点依次挂到新列表后面,直到有一个列表为空。 另一个不为空的列表可以直接插入到新列表的最后面。 返回去掉头节点的新列表 class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { ListNode i = list1, j = list2,res,h; //创建一个头节点,之后排好序的元素一个一个插入在后面原创 2022-04-14 20:05:01 · 339 阅读 · 0 评论 -
2. 两数相加
思路: 对两个单链表进行相加,将累加结果的模赋值到第一个单链表,累加结果除以十后进行下一轮运算。 若第一个单链表比较长,则第二步不进行处理,若第二个单链表比较长,则将后面的元素挂在第一个结果集后面。 若temp不等于0,则继续累加取模并赋值到后面挂的元素上。 代码: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNo原创 2022-04-12 12:24:51 · 349 阅读 · 0 评论 -
1. 两数之和
思路:每次判断当前值与数组中当前值前面的值相加是否等于target。 步骤: res数组代表最终要返回的结果;hashmap的key代表值,value代表值对应下标。 遍历nums数组。 判断是否包含(target-当前遍历数值的差值),如果包含则代表答案查找成功,将target-当前遍历数值的差值和当前值的下标放在res,跳出循环,否则将当前值和下标放入hashmap中。 返回res。 代码如下: class Solution { public int[] twoSum(int[] nums.原创 2022-04-11 23:31:35 · 43 阅读 · 0 评论