![](https://img-blog.csdnimg.cn/20210621200135491.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
LeetCode算法题
对于一些常见的面试算法题的随机整理
妄痴梦中
对于学习路上的一些知识进行总结,希望能帮助到各位朋友
展开
-
力扣题之两数相加
2.两数相加(传送门)给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。因为相同位置的数加起来会涉及到该节点下一个节点数据的改变,所以我选用集合ArrayList辅助解决问题(有点笨了)但是还是那句话,自己依靠自己的思路来一遍,会提升我们的编码手感代码: /** * 2. 两数相加 */public cl原创 2021-12-16 12:36:39 · 1023 阅读 · 0 评论 -
基于HashMap的经典的统计算法
经典的统计算法1941. 检查是否所有字符出现次数相同(以力扣的经典例题为例)统计解法代码: public static boolean areOccurrencesEqual(String s) { HashMap<Character, Integer> map = new HashMap<>(); for (int i = 0; i < s.length(); i++) { Integer intege原创 2021-08-18 12:44:01 · 168 阅读 · 0 评论 -
逆波兰计算器
逆波兰计算器的实现思路定义:逆波兰表达式又叫做后缀表达式。逆波兰表示法是波兰逻辑学家J・卢卡西维兹(J・ Lukasiewicz)于1929年首先提出的一种表达式的表示方法 [1] 。后来,人们就把用这种表示法写出的表达式称作“逆波兰表达式”。逆波兰表达式把运算量写在前面,把算符写在后面。 >>整体思路: 1. 首先我们输入中缀表达式; 例如:1+((2+3)*4)-5 2. 将其转换为list集合下的单个元素;原创 2021-07-01 20:38:13 · 296 阅读 · 0 评论 -
丢失的数字 求和解和^位运算解
求和解和^位运算解 >问题: 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 >思路: 法一: 1. 0到n的数的总和-nums的数组内元素之和=该数 法二: 1. 相当于一群有很多两个相同数和唯一一个落单数的数组和中取出落单的那个 2. 将0到n的数和nums数组原创 2021-06-17 17:19:31 · 100 阅读 · 0 评论 -
判断一个数是否是2的幂 位运算解和&运算解
位运算解和&运算解 >问题: 给一个数n,如果该数是2的幂,返回true;否则发挥flase; >思路: 法一: <<位运算解: 1. 将该数与每个2的幂进行比较 2. 2的幂可以用 1<<? 表示 法二: &位运算解:原创 2021-06-17 11:06:04 · 317 阅读 · 0 评论 -
位1的个数(汉明重量) 位运算解
或运算统计>问题: 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。>思路1.位运算中找合适的运算符号,首先我们要了解各符号的特性2.这里我将用到|(或)的特性:两者有1就1,全0才03.这里简单做一下举例:比如要测1000111我们给出如下:0000001 相当于1<<00000010 相当于1<<10000100 相当于1<<20001000 相当..原创 2021-06-16 16:14:33 · 177 阅读 · 0 评论 -
多数元素 位运算解
工具链接:位运算表>问题: 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素>思路: 1. 排序 2. 取下标为中间的值方法代码: public static int majorityElement(int[] nums) { Arrays.sort(nums); return nums[nums.length/2]; }...原创 2021-06-15 12:50:35 · 180 阅读 · 0 评论 -
取二进制最右边的1
问题:怎么把一个数N的二进制类型下最右边的1提取出来?如N的二进制原码为:…001010110000需要得到的结果为 :… 000000010000位运算N&((~N)+1) 可以实现运算二进制结果N001010110000~N110101001111(~N)+1110101010000N&((~N)+1)000000010000注:位运算详解请点击 位运算...原创 2021-05-03 20:20:50 · 1120 阅读 · 0 评论 -
只出现一次的数字(成对数)位运算解
问题一个数组中,一种数出现奇数次,其他数都是偶数次,怎么打印该数?如该数组为{1,2,3,1,2,3,3}代码:package com.ttttttt;public class ArrOdd { public static int arrOdd(int[] arr){ int ero=0; for(int i=0;i<arr.length;i++){ ero^=arr[i];//ero=ero^arr[i]; ..原创 2021-05-02 00:16:35 · 178 阅读 · 0 评论