主页 > imtoken1.0钱包下载 > 酒店每个房间的收入如何计算,和朋友合租两房一厅

酒店每个房间的收入如何计算,和朋友合租两房一厅

imtoken1.0钱包下载 2023-07-10 05:18:02

事实上,这是相当公平的。可以参考链家旗下的紫茹屋,两房一厅的房子,两房的价格不会相差太大(主卧,次卧怎么算我买入btc的平均价格,房间朝向会略有不同),不管每个房间住多少人,水电煤气费应该按房间数平摊,按人数计算比较合理,我看不占便宜你的。

唯一能让你感到平衡的事情就是找到一个人。

python中的LeetCode——动态编程

这部分是一个动态规划的算法问题。

5. 最长回文子串

给定一个字符串 s,找出 s 中最长的回文子串。您可以假设 s 的最大长度为 1000。

示例 1:

输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。

示例 2:

输入: "cbbd"输出: "bb"

想法

动态规划的思想,比如CABAC,如果只有一个字符'B',那么一定是回文,然后看B的两边,如果“ABA”的两边相同,那么这是一个回文;然后看“ABA”的两边。直到左右两边不相等,或者溢出。与之前存储的回文长度进行比较。

考虑两种情况,示例 1 和示例 2。

代码

class Solution(object):    def longestPalindrome(self, s):        """        :type s: str        :rtype: str        """        palindrome = ""        for i in range(len(s)):            len1 = len(self.getPalindrome(s, i, i))            if len1 > len(palindrome):                palindrome = self.getPalindrome(s, i, i)            len2 = len(self.getPalindrome(s, i, i 1))            if len2 > len(palindrome):                palindrome = self.getPalindrome(s, i, i 1)        return palindrome    def getPalindrome(self, s, l, r):        while l >= 0 and r < len(s) and s[l] == s[r]:            l -= 1            r  = 1        return s[l 1 : r]

53. 最大子阶和

给定一个整数数组 nums ,找到一个和最大的连续子数组(该子数组至少包含一个元素)怎么算我买入btc的平均价格,并返回其最大和。

例子:

输入:[-2,1,-3,4,-1,2,1,-5,4],

输出:6

解释:连续子数组 [4,-1,2,1] 的最大和为 6。

想法

如果数组中的所有整数都是负数,则选择最大的数,因为累积的越多越​​小。

正负数都需要两个变量,一个是global_max,从全局来看,每次什么组合最大,另一个是local_max,global_max和global_max相比更新。

代码

class Solution(object):    def maxSubArray(self, nums):        """        :type nums: List[int]        :rtype: int        """        if max(nums) < 0:            return max(nums)                local_max, global_max = 0, 0        for i in nums:            local_max = max(0, local_max   i)            global_max = max(global_max, local_max)        return global_max

62. 不同的路径

机器人位于 mxn 网格的左上角(起点在下图中标记为“开始”)。

机器人一次只能向下或向右移动一步。机器人试图到达网格的右下角(下图中标记为“完成”)。

Q 总共有多少条不同的路径?

例如,上图是一个 7 x 3 的网格。有多少种可能的路径?

注意:m 和 n 的值都不应超过 100。

示例 1:

输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向右 -> 向下2. 向右 -> 向下 -> 向右3. 向下 -> 向右 -> 向右

示例 2:

输入: m = 7, n = 3输出: 28

想法

动态规划问题,一是在一行一列的情况下,只有一招;其他情况=其上方网格的移动次数和左侧网格的移动次数

代码

70. 爬楼梯

假设你正在爬楼梯。您需要 n 步才能到达建筑物的顶部。

每次可以爬 1 或 2 级台阶。您可以通过多少种不同的方式到达建筑物的顶部?

注意:n 是一个正整数。

示例 1:

输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1.  1 阶   1 阶2.  2 阶

示例 2:

输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1.  1 阶   1 阶   1 阶2.  1 阶   2 阶3.  2 阶   1 阶

想法

对于一个典型的动态规划问题,第n步有两种方式,一种是爬上一步到第n-1步;二是爬两级到第n-2级。

得到动态规划递归:

代码

class Solution(object):    def climbStairs(self, n):        """        :type n: int        :rtype: int        """        if n == 1: return 1        if n == 2: return 2               result = [1, 2]        for i in range(2,n):            result.append(result[i-1]   result[i-2])        return result[-1]

121. 买卖股票的最佳时机

给定一个数组,其第 i 个元素是给定股票在第 i 天的价格。

如果您最多只能完成一笔交易(即买卖一只股票),请设计一种算法来计算您可以赚取的最大利润。

请注意,您不能在购买之前出售股票。

示例 1:

输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。     注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。

示例 2:

输入: [7,6,4,3,1]输出: 0解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。

想法:

一个循环,在价格最低时买入,在价格最高时卖出,节省最大利润。

代码:

class Solution(object):    def maxProfit(self, prices):        """        :type prices: List[int]        :rtype: int        """        if not prices: return 0        max_prices = 0        min_prices = prices[0]        for i in prices:            min_prices = min(min_prices, i)            max_prices = max(max_prices, i-min_prices)        return max_prices

198.家庭抢劫

你是一个专业的小偷,计划在街上偷房子。每个房间都隐藏着一定数量的现金。影响您的盗窃的唯一限制是相邻的房屋配备了相互连接的防盗系统。如果同一晚有小偷闯入相邻的两间房屋,系统会自动报警。

给定一个非负整数数组,表示每所房子的存储量,计算你可以在不触发警报的情况下窃取的最大数量。

示例 1:

输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。     偷窃到的最高金额 = 1   3 = 4 。

示例 2:

输入: [2,7,9,3,1]输出: 12解释: 偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。     偷窃到的最高金额 = 2   9   1 = 12 。

想法

动态规划思想

本期最大累计收入=max(上期收入,上期收入加上当前收入)

状态转移方程:dp[i] = max(dp[i-1], dp[i-2] nums[i])

代码

class Solution(object):    def rob(self, nums):        """        :type nums: List[int]        :rtype: int        """        n = len(nums)          if n == 0:            return 0        if n == 1:            return nums[0]                p = nums[0]        q = max(nums[0],nums[1])                for i in range(2,n):            next_ = max(p nums[i],q)            p,q = q, next_        return q

在酒店买房约40万元,承诺每年分红4万元,11年后拿到房子的产权。这是骗子吗?

是的