剑指offer--Day6
Posted Recently 祝祝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer--Day6相关的知识,希望对你有一定的参考价值。
Day6:剑指 Offer 17. 打印从1到最大的n位数
题目:输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
题解:首先需要知道,指用输入的4,位数为4的最大的值:9999,其实就是10x10x10x10-1(10的四次方),n位数的最大值就是10的n次方。
class Solution
public int[] printNumbers(int n)
int maxnum = (int)Math.pow(10,n);
int[] arr= new int[maxnum-1];
for(int i=1;i<maxnum;i++)
arr[i-1]=i;
return arr;
Day6:剑指 Offer 18. 删除链表的节点
力扣链接:剑指 Offer 18. 删除链表的节点
写过前边的几道题目之后,这道题目就变得简单多了,利用链表自身next的规则,遍历删除
题目:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。
题解:利用链表移动的规则,除去null与第一个数为head的规则,不断遍历next,如果遇到val==目标值。下一个值直接指向下下一个值。
/**
* Definition for singly-linked list.
* public class ListNode
* int val;
* ListNode next;
* ListNode(int x) val = x;
*
*/
class Solution
public ListNode deleteNode(ListNode head, int val)
if(head==null)
return null;
if(head.val ==val)
return head.next;
ListNode temp = head.next;
ListNode pre = head;
while(temp !=null)
if(temp.val==val)
pre.next =temp.next;
return head;
temp=temp.next;
pre=pre.next;
return head;
Day6:剑指 Offer 19. 正则表达式匹配
力扣链接:剑指 Offer 19. 正则表达式匹配
【五大算法思想】—》》动态规划三部曲,在做这道题之前需要了解到的,做算法之前必须要了解一些算法的思路以及解法,使用框架思维嵌套,久而久之就能熟悉算法的做法了。
动态规划:无非是利用历史记录来提高效率,避免重复计算
题目:请实现一个函数用来匹配包含’. ‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和"ab*a"均不匹配。
题解:动态规划
end》》》
无人约束的生活,需要更自律才是真相!
温柔一点,自律一点,对自己好一点。
以上是关于剑指offer--Day6的主要内容,如果未能解决你的问题,请参考以下文章