
逻辑算法
文章平均质量分 50
说谎de嘴
这个作者很懒,什么都没留下…
展开
-
【递归】迷宫小游戏(自动寻路+手动游玩)
【代码】【递归】迷宫小游戏(自动寻路+手动游玩)原创 2022-11-18 15:44:50 · 1099 阅读 · 0 评论 -
【算法】对已经排序数组的定位(插入新的元素)和排序
已知有一个从小到大的数组:int[] arr = {10, 12, 45, 90};插入任意int类型的数(当然可以扩展),使其插入之后按从小到大的顺序排序并打印。普通的遍历,对大的数组效率低,使用二分查找法提升效率!原创 2022-11-14 13:13:22 · 373 阅读 · 0 评论 -
练习:空心菱形(纯手打玩玩)
【代码】练习:空心菱形(纯手打玩玩)原创 2022-11-02 11:33:33 · 191 阅读 · 0 评论 -
练习:空心金字塔(纯手打玩玩)
目录希望成品:思路: 1. 先搞定(长方形,简单) : 2. 再搞定(三角形,也简单): 3. 再继续增加难度(有点难度了): 4. 再增加难度(最后的效果): 上代码: 方案一: 代码: 效果:因为我用的IDEA 编码(GBK,而我设置的是UTF-8),由于编码问题所以没用cmd 编译,和cmd编译出来的效果不太一样,不太好看,所以方案二改进一下。原创 2022-11-02 10:43:17 · 398 阅读 · 0 评论 -
算法:【位运算】详解、总结、具体推导过程
0正1负* ② 正数的原码、反码、补码都一样(三码合一)* ③负数的反码 = 原码的符号位不变,其他位取反(0->1、1->0)* ④负数的补码 = 负数的反码 + 1 ,负数的反码 = 负数的补码 - 1* ⑤ 0 的反码、补码都是 0** ⑥ java都是带符号运算,所以 最高位是0就是正、最高位是1就是负* ⑦ 计算机运算都是 以补码的方式进行运算的* ⑧ 我们看到的结果都是原码*原创 2022-11-01 13:46:46 · 398 阅读 · 0 评论 -
设计链表(单链表)
题目:设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性prev以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第index个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为val的节点。插入后,新节点将...原创 2022-04-23 12:04:41 · 213 阅读 · 0 评论 -
算法题5:轮转数组
题目:给你一个数组,将数组中的元素向右轮转 k个位置,其中k是非负数。示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]示例2:输入:nums = [-1,-100,3,99], k = 2输出:[3,99,-1,-100]解释:向右轮转 1 ...原创 2022-04-10 12:18:46 · 130 阅读 · 0 评论 -
算法题4:有序数组的平方
题目:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= nums.length <= 104-10.原创 2022-04-10 10:26:07 · 131 阅读 · 0 评论 -
二分查找法:例题3(搜索插入位置)
例题:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4提示:1 <= nums.l..原创 2022-04-05 14:36:19 · 198 阅读 · 0 评论 -
二分查找法例题2:查找第一个错误的版本
例题:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。示例 1:输.原创 2022-04-05 13:09:41 · 178 阅读 · 0 评论 -
算法:二分查找法
例题:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2...原创 2022-04-03 21:52:09 · 115 阅读 · 0 评论 -
自增:(i++和++i)、(+=和=+)的区别和详解,附带口诀、面试题保证记住
直接上代码,看说明和注解你就懂了!/** * @Author: 说谎 说明:自增 i++和++i的区别,口诀:哪个在前,先计算 * @Date 2022/3/10 10:15 */public class Increment { public static void main(String[] args) { int i=1; //很好记忆:i++是字母在前先赋值,后运算。所以应该是把i先给j,所以j=1,在运算1+1=2,i就变成2了原创 2022-03-10 11:00:08 · 475 阅读 · 0 评论 -
素数以及输入的数是否为素数的判断代码
素数就是质数,一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数,即素数;否则称为合数。比如2、3、5、7、11、13……。到底有什么用处呢?它除了似乎跟加密算法有点关系,什么用处也没有。我们程序员却可以把它当做条件去写判断代码。下面做个练习: 打印10000以内的所有素数。并从键盘输入一个正整数,判断是否为素数。 代码:import java.util.ArrayList;import java.util.List;import j...原创 2022-03-09 21:58:03 · 994 阅读 · 0 评论