算法题
毫无存在感的码农
https://wiki.dengcong.org/
展开
-
树:根据leetcode定义的Node,生成测试树
今天在刷Leetcode的时候,写完方法之后需要测试,需要定义树,需要用到树(Tree) 这种数据结构,我看leetcode编辑器上面定义了树类(Node),这里说的主要是生成N叉树,二叉树的话,比较容易生成。它给的类是这样子的:class Node { public int val; public List<Node> children; public Node() {} public Node(int _val) { val = _val;原创 2020-09-01 00:53:40 · 424 阅读 · 0 评论 -
算法:26 & 283
算法:26 & 283283. 移动零26. 删除排序数组中的重复项解法思路283:26:Leetcode上面题型类似的题目,这里发现26题和283题使用相同的思路283. 移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。实例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]26. 删除排序数组中的重复项给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用原创 2020-08-30 22:49:27 · 108 阅读 · 0 评论 -
算法:917、 仅仅反转字母
问题给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。输入:“ab-cd”输出:“dc-ba”输入:“a-bC-dEf-ghIj”输出:“j-Ih-gfE-dCba”输入:“Test1ng-Leet=code-Q!”输出:“Qedo1ct-eeLg=ntse-T!”自己解法 :将所有的字母存起来,反转,再把特殊字符插入进去大概就像标题说的,我使用StringBuffer将字母都存起来,在使用reserve反转,插入特别字符pub原创 2020-08-12 16:09:21 · 151 阅读 · 0 评论 -
算法:154、字符串相加
题目给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。提示:num1 和num2 的长度都小于 5100num1 和num2 都只包含数字 0-9num1 和num2 都不包含任何前导零你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式自己的方法:转换成数字相加(未通过)反正挺想笑的,题目说 不能直接将输入的字符串转换为整型,我以为是不能使用Integer.parseInt(),而我却想的是每次取一个数字字符,乘上10的相对位置的幂次原创 2020-08-12 15:00:19 · 255 阅读 · 0 评论 -
算法:709、转换成小写字母
题目实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串示例 1:输入: “Hello”输出: “hello”示例 2:输入: “here”输出: “here”示例 3:输入: “LOVELY”输出: “lovely”自己的解法就是 判断字符串每一个字节的ascll码,是否在65-90之间,如果在这个区间的话,就将ascll增加32,(因为大小写相差32)public String toLow原创 2020-08-11 22:11:54 · 150 阅读 · 0 评论 -
算法:58、最后一个单词的长度
题目给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。实例:输入: “Hello World”输出: 5自己的方法:使用trim()+lastIndexOf() 获取最后一个单词简单来说就是先去除两端的空格,然后使用 lastIndexOf 这个api 来完成的,简单粗暴。public in原创 2020-08-11 18:44:35 · 111 阅读 · 0 评论 -
算法:557、反转字符串中的单词 Ⅲ
问题给定一个字符串,你需要反转字符串中每个单词字符顺序,同时仍保留空格和单词的顺序。实例输入: “Let’s take LeetCode contest”输出: “s’teL ekat edoCteeL tsetnoc”注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。自己的方法想的就是使用split将字符串分割成,字符串数组,在转化成StringBuilder对象,使用reverse方法反转之后再拼接成字符串。class Solution { publ原创 2020-08-11 17:53:40 · 145 阅读 · 0 评论 -
算法:1、两数之和
问题给定一个整数数组nums和一个目标值,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标,你可以假设每种输入只会对应一个答案,但是,数组中同一个元素不能使用两遍。实例:给定 nums = [2,7,11,15], target=9因为nums[0]+nums[1] = 2+7=9所以返回[0,1]class Solution { public int[] twoSum(int[] nums, int target) { }}方法一:暴力解法暴力原创 2020-08-11 16:23:54 · 152 阅读 · 0 评论 -
算法:(1)确定字符互异
题目请实现一个算法,确定一个字符串的所有字符是否全部不同。这里我们要求不允许使用额外的存储结构。给定一个String iniString,请返回一个bool值,True代表所有字符全部不同,False代表存在相同的字符。保证字符串中的字符为ASCLL字符。字符串的长度小于3000。public class Different { public boolean checkDifferent(String iniString) { // write code here }原创 2020-08-10 22:26:27 · 132 阅读 · 0 评论