![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔试
文章平均质量分 61
思影影思
让积累在潜移默化中不断发生
展开
-
赛码网-大整数截取
问题暴力也是优美的算法,接下里是如何剪枝鹏伟提出了另外的一种想法,便是扫描出现的ai,这可以采用如下的函数 /** * Returns the index within this string of the first occurrence of the * specified substring. * * <p>The returned index is the smallest value <i>k</i> f原创 2022-02-19 21:47:59 · 1257 阅读 · 1 评论 -
力扣网-有效的括号
问题简介编程思路使用栈的思想进行编程当出现[{(是入栈的时机。右侧的括号则是出栈的时机。正常情况下,最后的字符串为空编写程序第一个版本 public boolean isValid(String s) { LinkedList<Character> characters = new LinkedList<>(); for (int i=0; i<s.length(); i++) { char c原创 2022-02-11 18:50:05 · 516 阅读 · 0 评论 -
力扣网-删除链表的倒数第N个节点
问题简介编程思路遍历思想由于程序的题意是删除倒数第N个节点,因此我们要定位到该节点进行删除。由于链表是单向的,因此,必须先获取链表的长度,然后通过倒数与整数的关系删除。要关注几个问题:这是边界情况删除第一个元素删除最后一个元素只有一个元素,删除此元素删除中间的元素,要保存当前节点的上一个节点的位置。 以五个元素为例,倒数第一个元素,为正数第5,倒数+整数=长度+1。双指针思想代码编写class ListNode { int val; ListNode原创 2022-02-11 16:17:09 · 474 阅读 · 0 评论 -
力扣网-四数之和
四数之和问题简介编程思路[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o69sd9Aa-1644564020552)(…/…/AppData/Roaming/Typora/typora-user-images/image-20220211151108383.png)]编程实现第一个版本-ACFourName类 FourName类是一个简单数据容器类,是为了保存一组解而生的。import java.util.Objects;/** * @author原创 2022-02-11 15:22:24 · 467 阅读 · 0 评论 -
力扣网-电话号码的字母组合
问题简介编程思路 题目理解起来并不复杂,但是由于digits.length是不定的,而且长度<=4,因此,大方向上我们选择递归来处理这个问题。在处理上,主要是关注digits的长度,因此首先要建立对于数字与字母的转换函数。第二,就是要有承载的结果,先要传递当前的所有计算结果,然后再累加上剩余的字符串的第一个字符所组合的函数。在实现上result变量承担着在中间过程是保存之前所有数字位的结果,然后,要把其内容全部保存在exists,然后进行遍历,重新组合结果。代码实现AC版本原创 2022-02-11 12:09:47 · 430 阅读 · 0 评论 -
力扣网-最接近的三数之和
最接近的三数之和问题简介编程思路 程序的思路开始的时候分析错误,分析成三个连续的了。所以比较尴尬。这个题目其实和三数之和比较相似,能按照统一的思想进行处理吗?数组进行排序在进行过程中令**Math.abs(sum - target)**取得最小值。程序编写第一个版本 理解错误,理解成了连续的三个整数 public int threeSumClosest(int[] nums, int target) { int diff = Integer.MAX_VALUE;原创 2022-02-10 20:59:16 · 316 阅读 · 0 评论 -
力扣网-三数之和等于0
问题简介编程思路三层循环-暴力方法必须掌握双向遍历代码实现第一个版本ThreeNum类import java.util.Objects;/** * 三数之和等于0 * * @author songquanheng * 2022/2/10-8:52 */public class ThreeNum { private Integer a; private Integer b; private Integer c; public Th原创 2022-02-10 11:11:28 · 478 阅读 · 0 评论 -
力扣网-最长公共前缀
问题简介编程思路思路比较简单,从字符串数组中获取最短的字符串以减少外层循环。遍历最短字符串中的每个字符,是否都在数组中所有字符串的相应位置代码实现第一个版本-AC public String longestCommonPrefix(String[] strs) { StringBuilder stringBuilder = new StringBuilder(); // 获取最短字符串 String s = Arrays.str原创 2022-02-09 21:43:07 · 259 阅读 · 0 评论 -
力扣网-罗马数字转整数
问题简介 这个问题其实与整数转化为罗马数字相当。编程思路转换函数写全一些(包括400、900、40、90等)Map<String, Integer> transfer = new HashMap<>(); transfer.put("I", 1); transfer.put("IV", 4); transfer.put("V", 5); transfer.put("IX", 9); transf原创 2022-02-09 20:32:51 · 531 阅读 · 0 评论 -
力扣网-整数转罗马数字
问题简介编程思路把映射关系使用Map保存起来。Map<Integer, String> transfer = new HashMap<>(); transfer.put(1, "I"); transfer.put(4, "IV"); transfer.put(5, "V"); transfer.put(9, "IX"); transfer.put(10, "X"); tr原创 2022-02-07 22:31:02 · 104 阅读 · 0 评论 -
力扣网-盛最多水的容器
问题思路编写数组的两次遍历找出两条线段的小者,然后通过计算(j-i)*min(a[i], a[j])编程实现暴力匹配 public int maxArea(int[] height) { if (height.length<2) { return 0; } int maxArea = 0; for (int i=0; i<height.length - 1; i++) {原创 2022-02-06 22:55:51 · 797 阅读 · 0 评论 -
力扣网-整数回文数
问题简介编程思路整个思路如下所示:首先获取正数的字符串表示。然后获取该字符串的逆向表示判断两个字符串是否相等编程实现 public boolean isPalindrome(int x) { String str = String.valueOf(x); String reverse = new StringBuffer(str).reverse().toString(); return str.equals(reverse);原创 2022-02-05 21:16:38 · 158 阅读 · 0 评论 -
力扣网-字符串转换整数 (atoi)
问题简介编程思路在遍历字符串的过程中填充符号信息、数据字符串信息。根据符号和最后的数字串信息强转为有效的数字。为防止越界,采用long类型的数据来存储和表示直接的数据。有效性查询。编程实现编程第一个版本 public int myAtoi(String s) { char[] chars = s.toCharArray(); int sign = 1; StringBuilder numberBuilder = new Stri原创 2022-02-04 23:30:39 · 610 阅读 · 0 评论 -
力扣网-整数翻转
问题简介解题思路看做数字进行解析-123 先按照123处理取个位可以使用123%10=3取出个位,12 %10=2,1%10=1。获取123的反面表示321,然后加上负号,得到结果。 StringBuilder builder = new StringBuilder(); while (y>0) { builder.append(y%10); y /= 10; }对于120则再取反之后移除前导0.原创 2022-02-03 22:06:25 · 686 阅读 · 0 评论 -
力扣网-Z字形变换
问题简介解题思路字符所在行数变化[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8PVdN2S2-1643808334869)(https://s2.loli.net/2022/02/02/BgGwQ3tmcefMoOr.png)]也可参见Z字形变换(按行排序)取余思路将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。程序对应字符行数变化class Solution { public String con原创 2022-02-02 21:26:44 · 708 阅读 · 0 评论 -
力扣网-最长回文子串
问题简介其实本问题还是针对于数组的两层循环使用。编程思路程序第一个版本public int lengthOfLongestSubstring(String s) { char[] chars = s.toCharArray(); // 每个子串的最大长度 int max = 0; Set<Character> uniqueChars = new HashSet<>(); for (int i原创 2022-02-01 20:23:10 · 87 阅读 · 0 评论 -
力扣网-寻找两个正序数组的中位数
问题简介编程思路核心的是要从两个正序数组生成有序的数组。这个是核心。程序使用了在for循环中使用了remove函数使用了List类的不为空就删除。灵活的使用remove函数。中位数的生成数组有奇数个偶数个要进行区分,这样获取中位数。获取中位数要*1.0,成为double,不然会发生截断。程序编码第一个AC版本 这次还挺好的,一下子就AC了。开心。 public double findMedianSortedArrays(int[] nums1, int原创 2022-01-31 22:48:57 · 423 阅读 · 0 评论 -
力扣网-无重复字符的最长子串
问题简介其实本问题还是针对于数组的两层循环使用。编程思路程序第一个版本public int lengthOfLongestSubstring(String s) { char[] chars = s.toCharArray(); // 每个子串的最大长度 int max = 0; Set<Character> uniqueChars = new HashSet<>(); for (int i原创 2022-01-31 21:34:58 · 6374 阅读 · 0 评论 -
力扣网-两数相加
简介两数相加然后取整数的个位。使用堆栈表达问题越界单链表生成问题取个位数栈表示Integer表示数字Long表示一个数字从此,我们要用Statck直接来表示ListNode结构程序版本使用Long来表示ListNode所表示的数字下述程序是使用了Long类型来保存一个数字的过程,通过了1565 / 1568.未通过用例:import java.util.Stack;/** * Definition for singly-linked list. * pub原创 2022-01-30 21:03:13 · 878 阅读 · 0 评论 -
力扣网-两数之和
体会 笔试题的回答与工作时的编程不同,笔试题讲究的是在有限的时间里完成快速完成核心问题,而工作中则可以进行不断的优化和迭代。但是,笔试题更加看重的是快速、正确,所以不用过多的追求优美,想要快速的解答问题,一方面是要有代码感,另外的就是熟练使用Java提供的类库,比如说Collections、TreeMap、Arrays、排序、查找等工具类。这个题目,笔者最大的收获就是indexOf和lastIndexOf的使用了。int[]转化为List 各位读者,2022年春节就要来了,希望每个人在这一原创 2022-01-28 18:04:35 · 869 阅读 · 0 评论 -
赛码网: 小明很喜欢打字,今天小红给了小明一个字符串。
题目时间限制: 3000MS内存限制: 589824KB题目描述:小明很喜欢打字,今天小红给了小明一个字符串。这个字符串只包含大写和小写字母。我们知道,按下CapsLock键,可以切换大小写模式。我们在小写模式时候,同时按下shift+字母键,就能写出大写字母。在大写模式的时候,按下shift+字母键,就能写出小写字母。现在问题来了,给你一个字符串,问你最少使用多少个按键,就可以写出这个字符串呢?注意,按shift和字母键,算两次按键。开始时均为小写状态。感觉代码没有问题,但赛原创 2022-01-27 00:34:29 · 6231 阅读 · 6 评论 -
java给定一个字符串,问是否能通过添加一个字母将其变为回文串。
添加字母的位置需要注意:添加在开头添加在结尾3.添加在中部转换为前两种,移除首位相同的字母import java.util.Scanner;/** * @author songquanheng * 2022/1/25-22:01 */public class Huiwen { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); .原创 2022-01-25 22:46:53 · 702 阅读 · 0 评论 -
怪物挥刀加血程序
import java.util.Arrays;/** * @author songquanheng * 2022/1/25-20:48 */public class Monster { public static void main(String[] args) { int monsters[] = {0,1,0,1, 0}; System.out.println(new Monster().kits(monsters)); } /**原创 2022-01-25 21:18:55 · 174 阅读 · 0 评论