刷题日记
文章平均质量分 78
fager漫长路
记录学习点点滴滴。
展开
-
两个超大正整数相乘_求积_字符串操作
字符串玩的溜,真的出神入化原创 2020-07-02 11:10:27 · 1027 阅读 · 0 评论 -
求double类型的立方根_二分法逼近
二分法逼近原创 2020-07-01 15:14:01 · 509 阅读 · 0 评论 -
求最小公倍数_华为笔试
直接 轮询的乘,到最大 就是两数相乘;记得获取到第一个就return退出 程序。原创 2020-07-01 14:19:48 · 208 阅读 · 0 评论 -
字符串切割拼接_华为校招
各种字符串处理。。。原创 2020-06-30 17:40:48 · 187 阅读 · 0 评论 -
求32位整数的二进制个数_原码反码补码真的烦
我10秒钟做出了正数的1的个数,却秀死在负数。。。原创 2020-06-29 18:05:42 · 1787 阅读 · 1 评论 -
剪绳子_贪心算法_剑指offer
思路一:归纳推理法:多分析几个例子,就会发现,平均分成3,取得的乘积是最大的,为什么的,首先我考虑的是先将 该数均分,然后平方,或者将它3次分会得到3次方,那5呢。。。当然,这思路并不能取得最优解,还是老老实实归纳一下,得出结论吧。 /** * 题目分析: * 先举几个例子,可以看出规律来。 * 2 : 1*1 * 3 : 1*2 * 4 : 2*2 * 5 : 2*3 * 6 : 3*3 * 7 : 2*2*3 或者4*3 * 8 : 2*3*..原创 2020-06-29 09:57:44 · 185 阅读 · 0 评论 -
88. 合并两个有序数组_力扣_指针控制
class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int count =0; for(int i=0;i<m+n;i++){ for(int j=0;j<n;j++){ if(j<count){ contin.原创 2020-06-28 16:15:50 · 150 阅读 · 0 评论 -
70. 爬楼梯_力扣_斐波那契数列
数组/递归实现原创 2020-06-28 11:47:01 · 167 阅读 · 0 评论 -
53. 最大子序和_力扣_看下一个数和当前数移动
class Solution { public int maxSubArray(int[] nums) { if(nums.length<1){ return 0; } int m = nums[0]; int sum = m; int max = sum; for(int i=1;i<nums.length;i++){ if((nums[i].原创 2020-06-23 13:42:01 · 106 阅读 · 0 评论 -
38.外观数列_递归_构造器理解
递归,数学归纳法的演进,再用编程语言实现。原创 2020-06-17 10:52:49 · 201 阅读 · 0 评论 -
27. 移除元素_力扣_数组操作
class Solution { public int removeElement(int[] nums, int val) { int n = 0; for(int i=0;i<nums.length;i++){ if(nums[i] != val){ nums[n]=nums[i];//在长度增加之前,将该值赋值到该元素本该站的位置 .原创 2020-06-16 17:02:37 · 158 阅读 · 0 评论 -
21. 合并两个有序链表_力扣_链表节点的移动
这道题说的是简单,哎,我操作链表只会用递归,这次不会递归了,半天想不出来怎么移动指针。原来链表节点的移动就是让自己的next节点赋值给自己,就移动到了下一节点。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; }..原创 2020-06-16 14:24:35 · 121 阅读 · 0 评论 -
26. 删除排序数组中的重复项_力扣_算法
思路一:只要用一个指针指着有序不同的数,然后移动另一个指针去遍历与前面的对比,相同跳过,不同则赋值,就可以啦。class Solution { public int removeDuplicates(int[] nums) { int n=0; for(int i=0;i<nums.length;i++){ if(nums[n] == nums[i]){ continue; ..原创 2020-06-16 11:51:34 · 147 阅读 · 0 评论 -
24.两两交换链表中的节点_力扣_算法
思路一单向链表,而且不确定长度的交换,那必须使用递归了.递归的话,一个是递归的入口,另一个是递归的出口.先慢慢的往下交换几个, 试试入口在哪. 经调试,发现入口在链表长度为4以上的地方,这时会出现一个拐点情况: 2->1->4, 而且3->4 .出现了两条岔路,明显前面那条岔路是正确的, 只需要将后面那条岔路放进去递归调整就可以了.而且会发现3->4 像极了初始时1->2的场景.这就是递归的入口.出口就是没有子节点后,自动出来了,当然,要注意的是,当只有2个节点的...原创 2020-06-10 14:45:59 · 154 阅读 · 0 评论 -
20.有效的括号_力扣_算法
又是字符串处理,刚看这道题,不知道怎么下手,不知道是用正则还是什么,找到规则进行处理。后来想想,好像和栈的道理一样,只要成对的弹出去抵消了就不影响输出的结果了,于是用栈做出来了。原创 2020-06-10 11:13:38 · 138 阅读 · 0 评论 -
14.最长公共前缀_力扣_算法
思路一最长公共前缀,发现只需要用第一个字符串分别与其他字符串进行对比就能得到了,而每次将对比的结果存储在返回的字符串中,再继续和其他字符串前缀进行比较。直到获得最后的公共字符串为止。class Solution { public String longestCommonPrefix(String[] strs) { String s1 =""; if(strs.length>0){ s1 = strs[0];..原创 2020-06-10 10:28:56 · 129 阅读 · 0 评论 -
罗马数字转整数_力扣_算法
简单的了解了罗马数字的特性原创 2020-06-10 09:56:50 · 204 阅读 · 0 评论 -
整数反转_力扣_取模取整_算法
第一次解的时候是这样的,但是不行,溢出时会报转换异常。 String str = x+""; int len = str.length(); if(x>0){ StringBuilder sb = new StringBuilder(); for(int i=len-1;i>=0;i--){ sb.append(str.charAt(i)); .原创 2020-06-09 16:20:30 · 369 阅读 · 0 评论 -
无重复字符的最长子串_力扣_算法_滑窗格
试用双指针+map,利用滑动窗格的思想进行记录取值.原创 2020-06-09 15:23:02 · 104 阅读 · 0 评论 -
两数相加_力扣_算法
使用了粗暴的方法,进行编写,还要改进原创 2020-06-09 09:41:21 · 562 阅读 · 0 评论 -
二叉树的前序遍历_力扣_算法
写在前关于二叉搜索树的遍历并不难,难的是如何重构这颗二叉树,实现节点的插入,节点的删除。解法1–递归遍历前序遍历就是先遍历跟节点,再遍历左子节点,最后遍历右子节点。当第一次到该节点的时候打印该节点的值。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(in原创 2020-06-08 15:04:10 · 384 阅读 · 0 评论 -
两数和_力扣_算法
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法1–暴力双层循环思路: 按位置取第一个与第二个相加,再让第一个与第三个相加,再让第一个和第四个相加…第一次循.原创 2020-06-08 12:50:54 · 144 阅读 · 0 评论 -
每日一刷_笔试题_记录
前言刷题记录1. 霍夫曼编码2. 二叉树遍历原创 2020-06-04 20:55:02 · 385 阅读 · 0 评论