题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方.   本人渣渣代码: public double Power(double base, int exponent) { double result=1; try { if (exponent>0) { for (int i = 0; i < exponent; i++) { result=result*base; } }else { exponent=exponent*-1;…
一.题目:数值的整数次方 题目:实现函数double Power(doublebase, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 在.NET Framework提供的BCL中,Math类实现了一个Pow方法,例如要求2的三次方,可以通过以下代码实现: , ); 本题就是要实现一个类似于该Pow方法的功能. 二.解决思路与实现 2.1 不加思索的思路 不需要考虑大数问题,可以在30秒内想到的思路如下: public double Po…
// 面试题16:数值的整数次方 // 题目:实现函数double Power(double base, int exponent),求base的exponent // 次方.不得使用库函数,同时不需要考虑大数问题. #include <iostream> #include <cmath> bool g_InvalidInput = false; bool equal(double num1, double num2); double PowerWithUnsignedExpone…
面试题 16. 数值的整数次方 题目描述 题目:给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 解答过程 下面的讨论中 x 代表 base,n 代表 exponent. 因为 (x*x)n/2 可以通过递归求解,并且每递归一次,n 都减小一半,因此整个算法的时间复杂度为 O(logn). 代码实现 方法一 public class Solution { public double Power(double x, int n) { i…
问题描述 实现函数double Power(double base, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 示例 3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25 说明: -100.0 < x < 100.0 n 是 32…
方法1:直接求解,但是要注意特殊情况的处理:即当指数为负,且底数为0的情况. #include<iostream> using namespace std; template<typename T> T myPow(T a, int m){ double base = 1; int flag = (m < 0) ? -1 : 1; int n = (m < 0) ? -m : m; while(n > 0){ base = base * a; n --; } if…
题目:给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 分析: * 要注意以下几点:* 1.幂为负数时,base不能为0,不然求的时候是对0取倒数,会发生除0异常.* 2.0的0次幂无意义,无特殊说明,一般来说是1. public double power(double base, int exponent) { if (exponent == 0) { return 1.0; } if (exponent == 1) { retur…
书中方法:这道题要注意底数为0的情况.double类型的相等判断.乘方的递归算法. public double power(double base, int exponent){ //指数为0 if(exponent == 0){ return 1.0; } //底数为0 if(isEqual(base, 0.0)){ return 0.0; } int absExponent = exponent; if(exponent < 0)absExponent = -absExponent; dou…
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变.   本渣渣解题思路:   遍历整个数组array,   遇到偶数,添加到list1:   遇到奇数,添加到list2:   再先后把list1和list2中的数添加到array   代码实现如下:   import java.util.LinkedList;public class Solution { public…
题目 剑指 Offer 12. 矩阵中的路径 思路1(回溯.DFS) 这题可以使用回溯+递归来解决,思路如下: 将二维数组的每一个元素都作为起点进行回溯查找 每次查找的时候,都有四个方向,但是上一个方向不能再次被遍历,因此需要将遍历过的位置进行做标记,递归返回的时候再还原 递归过程中要判断一些条件:越界直接返回false.当前字符和word中的不匹配也直接返回false 何时为匹配成功呢?只要能匹配到word的最后一个字符,即curIndex == cs.length-1(curIndex为每次…
剑指 Offer 12. 矩阵中的路径 题目链接 题目类似于迷宫的搜索. 需要注意的是,需要首先判断起始搜索的位置,可能有多个起点,都需要一一尝试. 每轮迭代的时候记得将是否遍历标记数组还原为未遍历的状态. package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2020/12/9 9:09 */ import java.util.Arrays; /** * [["a","b","c…
1. 题目 这是<剑指offer>上的一道题,刚开始觉得这是一道挺简单的题目,后来发现自己太年轻了,考虑的因素太少了,思考了而是分钟还是无从下手,看了作者的思路深深被他折服了,题目如下: 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串 "+100"."5e2"."-123"."3.1415" 以及 "-1E-16" 都表示数值,但"12e".&quo…
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 地上有一个m行n列的方格.一个机器人从坐标(0, 0)的格子开始移动,它每一次可以向左.右.上.下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子.例如,当k为18时,机器人能够进入方格(35, 37),因为3+5+3+7=18.但它不能进入方格(35, 38),因为3+5+3+8=19.请问该机器人能够到达多少个格子? 思路 与[Java] 剑指offer(11)…
题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,1一共出现了5次. 解法一:不考虑时间效率的解法(略) ps:我感觉是个程序员都能想到这第一种解法,时间复杂度O(nlogn).这个方法没有什么意义,但是简单易懂,去小公司足够了,这里不讲了. 解法二:分析数字规律,时间复杂度O(logn). 这是我写这篇文章的初衷.<剑指offer>洋洋洒洒写了几十行代码,然而在leetcode上大神却只用了5行!当天晚…
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 题目地址 https://www.nowcoder.com/practice/1a834e5e3e1a4b7ba251417554e07c00?tpId=13&tqId=11165&tPage=1&rp=3&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-…
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. public class Solution { public double Power(double base, int exponent) { boolean isNegtive = false; if(exponent == 0) return 1; if(exponent == 1) return base; if(exponent < 0){ isNegtive =…
[思路1]递归 class Solution { public: double Power(double base, int exponent) { ){ /base; exponent = -exponent; } ){ ; }else{ ); } } }; [思路2]快速幂 class Solution { public: double Power(double base, int exponent) { long long p = abs((long long)exponent); dou…
题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值. 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是. 题目分析 一般当我们看到判断字符串,就可以联想到正…
一.题目 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值. 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是. 二.思路 方法一:正则表达式 方法二:抛异常 三.…
  题目描述:   请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100", "5e2", "-123"," 3.1416" 和 "-1E-16" 都表示数值. 但是 "12e", "1a3.14", "1.2.3", "+-5" 和 "12e+4.3" 都不是.   解题思路:…
今天主要写了一下offer 1-41题,余下的稍后整理 1 """ 1 镜像二叉树: 递归 """ def mirror(root): if not root: return None mirror(root.left) mirror(root.right) root.left, root.right = root.right, root.left return root """2. 链表环入口 "&quo…
重建二叉树 题目描述 输入某二叉树的前序遍历和中序遍历的结果,前重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.假如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回. 思路 前序遍历:根左右,中序遍历:左根右. 则: 1为根节点,{4,7,2}在根的左边,{5,3,8,6}在根的右边. 1的左子树节点为2,右子树节点为5. 2的左子树为{4,7},没有右子树.5没有左子树,右子树为{3,8,6}. 依次递…
题目描述 是一道很常见的深搜题目,不过里面要考虑一些边界问题,比如走过的路径是不能再次走入的,所以我这里我自己的 代码想到是利用一个新的二维的数组,记录走过的路径,不过题解的直接将原二维数组中的路径隐藏,这样可以节省 内存空间,等搜索完,再将路径重新赋值进去,tql,剩下就没啥坑点了,直接四个方向搜索,到递归出口就结束 class Solution { public: vector<vector<int>> v; bool exist(vector<vector<cha…
来两道关于链表链接的题目: 题目一: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 本题要考虑到其中一条链表是空或者两个都是空的情况. 在每个链表安上一个指针,对比一次,提取一个结点,接到目标链表上. /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { p…
题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 解法一:设置标志为flag=1,逐个位移至不同位置,比较是否为1. C++实现 class Solution { public: int NumberOf1(int n) { unsigned int flag=1; int count=0; while(flag!=0){ if(n&flag){ count++; } flag=flag<<1; } return count; } }; 解法二:将一个整数减去…
[题目]将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数 * []整数(32位)最大值:0X7fff ffff( 0111 1111 1111 1111 1111 1111 1111 1111 (0代表正号)) * 最小值:0x8000 0000( 1000 0000 0000 0000 0000 0000 0000 0000 (1代表负号)) package com.exe10.offer; /** * [题目]将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数 *…
题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数). 思路 为什么突然就想到了一种很猥琐的方法..但是非常耗时.遍历从1到n的数,把每个数变成字符串,看看‘1’出现的次数 解答 class Solution: def Numbe…
题目: 实现函数double power(double base,int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 解题思路:最一般的方法实现数值的n次方就是将一个数自身连乘n次底数要考虑到正数.负数和零的情况指数要考虑到正整数,负整数和零的情况.可能的情况有九种,其中尤其要注意底数为0,指数为负数的情况下是无意义的,因此要做特殊处理指数为负数的乘方运算,可先按照指数为正求得,然后求倒数得到真正结果解法一:全面不高效,考虑到所有边界条件和负面…
剑指offer第三章 1.数值的整数次方 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. class Solution { public: bool g_InvalidInput=false; double Power(double base, int exponent) { g_InvalidInput=false; ) { g_InvalidInput=true; return 0.0; } unsigned int absEx…
数组 数组中重复的数字 二维数组中的查找 构建乘积数组 字符串 替换空格 字符流中第一个不重复的字符 表示数值的字符串 递归和循环 斐波那契数列 跳台阶 变态跳台阶 矩形覆盖 链表 从尾到头打印链表 删除链表中重复的结点 链表中环的入口结点 树 把二叉树打印成多行 按之字形顺序打印二叉树 对称的二叉树 二叉树的下一个结点 数据流中的中位数 二叉搜索树的第k个结点 重建二叉树 代码的完整性 数值的整数次方 调整数组顺序使奇数位于偶数前面 知识迁移能力 二叉树的深度 平衡二叉树 左旋转字符串 数字在…