蓝桥杯
__Wang____
这个作者很懒,什么都没留下…
展开
-
数值的整数次方 java 算法与数据结构
实现pow(x,n),即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。输入:x = 2.00000, n = 10输出:1024.00000输入:x = 2.10000, n = 3输出:9.26100输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25输入x=2.0,n=10;debug 过程如下:x^2a = 5 res = x^2...原创 2022-03-26 12:05:42 · 897 阅读 · 0 评论 -
求1+2+…+n java python 算法与数据结构
求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。输入: n = 9输出: 45个人认为这道题通用性太低了,不能用循环,想求这么多数的和一定要使用递归,不能用if判断循环的终止条件,就用短路与&&的短路效应,即&&的前面条件不成立,就会直接终止后面的递归Java 中,为构成语句,需加一个辅助布尔量 xx ,否则会报错;Java 中,开启递归函数需改写为 sumNums原创 2022-03-26 11:29:28 · 1349 阅读 · 0 评论 -
排序数组中只出现一次的数字 java 算法与数据结构
给定一个只包含整数的有序数组 nums ,每个元素都会出现两次,唯有一个数只会出现一次,请找出这个唯一的数字。输入: nums = [1,1,2,3,3,4,4,8,8]输出: 2思想同二进制求和plus这篇文章,都是使用的位运算;class Solution { public int singleNonDuplicate(int[] nums) { int res = nums[0]; for(int i = 1;i<nums.length;原创 2022-03-26 11:14:20 · 768 阅读 · 0 评论 -
二进制求和plus java 算法与数据结构
写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。输入: a = 1, b = 1输出: 2这道题对比二进制求和 java 算法与数据结构___Wang____的博客-CSDN博客有以下不同的地方:1.这里直接给出了 int 类型,而不是字符串类型;2.不允许使用加减乘除,应该使用位运算来A这道题;位运算求和的基本算法:int sum = a^b;int carry = (a&b)<<1;完整代码如下:..原创 2022-03-26 10:36:08 · 854 阅读 · 0 评论 -
二进制数转字符串
二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。 输入:0.625 输出:"0.101" 输入:0.1 输出:"ERROR" 提示:0.1无法被二进制准确表示...原创 2022-03-25 15:43:16 · 2664 阅读 · 0 评论 -
格雷编码 java c python 算法与数据结构
n 位格雷码序列 是一个由 2n 个整数组成的序列,其中:每个整数都在范围 [0, 2n - 1] 内(含 0 和 2n - 1)第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 ,且第一个 和 最后一个 整数的二进制表示 恰好一位不同给你一个整数 n ,返回任一有效的 n 位格雷码序列 。输入:n = 2输出:[0,1,3,2]解释:[0,1,3,2] 的二进制表示是 [00,01,11,10] 。- 00 和 01 有一位不同- 01原创 2022-03-25 15:27:24 · 1405 阅读 · 0 评论 -
二进制中1的个数 java 算法与数据结构
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(汉明重量)。请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。输入必须是长度为32的二进制串。 //按位与的方式去算1的个数 // public int hammingWeight(int n) { // ...原创 2022-03-25 11:40:13 · 604 阅读 · 0 评论 -
二进制求和 java 算法与数据结构
给你两个二进制字符串,返回它们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。输入: a = "11", b = "1"输出: "100"class Solution { public String addBinary(String a, String b) { int i = a.length() - 1; int j = b.length() - 1; int carry = 0; ...原创 2022-03-25 11:32:20 · 1349 阅读 · 0 评论 -
二叉树的遍历 java 算法与数据结构
二叉树的遍历方式包括深度优先遍历和广度优先遍历其中深度优先遍历包括 前序遍历 中序遍历 后序遍历三种,这三种遍历都可以使用迭代方式和递归方式实现;而广度优先遍历指的就是层序遍历1.前序遍历 即中 左 右1.1迭代/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * Tre.原创 2022-03-24 20:41:23 · 161 阅读 · 1 评论 -
反转字符串II java c python 算法与数据结构
给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。输入:s = "abcdefg", k = 2输出:"bacdfeg"class Solution { public String reverseStr(String s, int k) { char[] ch =原创 2022-03-24 17:50:11 · 113 阅读 · 0 评论 -
反转字符串 java c 算法与数据结构
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]java实现//因为字符串是引用类型,所以这里不需要返回//字符串在内存空间中已经发生了修改class Solution { public void reverseString(char[] s原创 2022-03-24 16:37:46 · 93 阅读 · 0 评论 -
反转两次数字 java 算法与数据结构
反转 一个整数意味着倒置它的所有位。例如,反转 2021 得到 1202 。反转 12300 得到 321 ,不保留前导零 。给你一个整数 num ,反转 num 得到 reversed1 ,接着反转 reversed1 得到 reversed2 。如果 reversed2 等于 num ,返回 true ;否则,返回 false 。输入:num = 526输出:true解释:反转 num 得到 625 ,接着反转 625 得到 526 ,等于 num 。java算法1:认真地按照题意做原创 2022-03-24 15:59:41 · 173 阅读 · 0 评论 -
两数之和 java c python 算法与数据结构
给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。java实现方法1:暴力枚举,可以用两层循环来暴力尝试方法2:定义...原创 2022-03-24 15:51:33 · 64 阅读 · 0 评论 -
快乐数 java python 算法与数据结构
编写一个算法来判断一个数 n 是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true ;不是,则返回 false 。输入:n = 19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 = 1java实现.原创 2022-03-23 22:25:08 · 71 阅读 · 0 评论 -
两个数组的交集
给定两个数组nums1和nums2,返回它们的交集。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]javaclass Solution { public int[] intersection(int[] nums1, int[] nums2) { if(nums1 == null || nums2 == null){ ret...原创 2022-03-22 22:23:37 · 1041 阅读 · 0 评论 -
有效的字母异位词 java 算法与数据结构
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。java 实现class Solution { public boolean isAnagram(String s, String t) { //前两次提交分别使用了排序方法和哈希表使用数组的方法 //针对进阶问题,主要是unicode编码中可能含有非常多样的字符,不能再想刚才考虑字母一样定义原创 2022-03-22 21:16:56 · 775 阅读 · 0 评论 -
有序数组的平方 java 数据结构与算法
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]Java实现,双指针class Solution { public int[] sortedSquares(int[] nums) { int size = nums.leng原创 2022-03-22 10:22:44 · 95 阅读 · 0 评论 -
特别和的数 java 算法与数据结构
小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 请问,在 1 到 n 中,所有这样的数的和是多少?【输入格式】输入一行包含两个整数 n。【输出格式】输出一行,包含一个整数,表示满足条件的数的和。【样例输入】 40【样例输出】 574import java.util.Scanner;public class try1 { public...原创 2022-03-19 16:12:46 · 610 阅读 · 0 评论 -
数的分解 java 算法与数据结构
把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包 含数字 2 和 4,一共有多少种不同的分解方法? 注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。public class try1 { public static void main(String[] args) { int n = 2019; int num = 0; for (int i = 1; i < n; i++)转载 2022-03-19 15:32:38 · 101 阅读 · 0 评论 -
基本计算器II java 算法与数据结构
给你一个字符串表达式s,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。输入:s = "3+2*2"输出:7输入:s = " 3/2 "输出:1class Solution { public int calculate(String s) { Stack<Integer> stack = new Stack<Integer>(); int num = 0; char ch = '+..原创 2022-03-19 11:21:27 · 110 阅读 · 0 评论 -
汉诺塔问题 java 算法与数据结构
在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制:(1) 每次只能移动一个盘子;(2) 盘子只能从柱子顶端滑出移到下一根柱子;(3) 盘子只能叠在比它大的盘子上。请编写程序,用栈将所有盘子从第一根柱子移到最后一根柱子。你需要原地修改栈。class Solution { public void hanota(List<Int原创 2022-03-19 10:03:45 · 105 阅读 · 0 评论 -
删除链表中的重复元素 java 算法与数据结构
给定一个已排序的链表的头head,删除所有重复的元素,使每个元素只出现一次。返回已排序的链表。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, Li...原创 2022-03-19 09:51:44 · 586 阅读 · 0 评论 -
剑指offer II 回文列表 java 算法与数据结构
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; }...原创 2022-03-18 11:35:25 · 131 阅读 · 0 评论 -
反转链表中的一部分 java 数据结构与算法
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; }...原创 2022-03-18 11:14:56 · 350 阅读 · 0 评论 -
反转链表 java 数据结构与算法
//核心代码模式/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.ne...原创 2022-03-18 10:36:36 · 348 阅读 · 0 评论