leetcode-160场周赛-5238-找出给定方程的正整数解

题目描述:

class Solution:
    def findSolution(self, customfunction: ‘CustomFunction‘, z: int) -> List[List[int]]:
        res = []
        for i in range(1,1001):
            for j in range(1,1001):
                if customfunction.f(i,j) == z:
                    res.append([i,j])
                if customfunction.f(i,j) > z:
                    break

        return res

另:O(N)

class Solution(object):
    def findSolution(self, customfunction, z):
        x = 1000
        y = 1
        ans = []
        while 1 <= x <= 1000 and 1 <= y <= 1000:
            z0 = customfunction.f(x, y)
            if z0 == z:
                ans.append([x, y])
                x -= 1
                y += 1
            elif z0 > z:
                x -= 1
            elif z0 < z:
                y += 1
        return ans

原文地址:https://www.cnblogs.com/oldby/p/11750630.html

时间: 2024-10-10 20:53:24

leetcode-160场周赛-5238-找出给定方程的正整数解的相关文章

[leetcode 周赛 160] 1237 找出给定方程的正整数解

1237 Find Positive Integer Solution for a Given Equation 找出给定方程的正整数解 问题描述 给出一个函数 f(x, y) 和一个目标结果 z,请你计算方程 f(x,y) == z 所有可能的正整数 数对 x 和 y. 给定函数是严格单调的,也就是说: f(x, y) < f(x + 1, y) f(x, y) < f(x, y + 1) 函数接口定义如下: interface CustomFunction { public: // Ret

Leetcode 183场周赛

Leetcode 183场周赛 1 #include <algorithm> class Solution { public: vector<int> minSubsequence(vector<int>& nums) { sort(nums.begin(), nums.end());//升序排列 vector<int> ans; int sum[505]; memset(sum,0,sizeof(sum)); sum[0] = nums[0]; f

(算法:二分查找)在排序数组中,找出给定数字出现的次数

题目: 在排序数组中,找出给定数字出现的次数 思路: 既然出现排序数组,很容易想到二分查找,时间复杂度为O(logn): 先通过二分查找找到最左边出现该数字的下标left(如果没找到,则返回-1),然后通过二分查找找到最右边出现该数字的下表right(如果没找到,则返回-1),然后right-left+1就是出现的次数: 代码: #include <iostream> using namespace std; int BinarySearchCount(int *array,int len,i

9.11排序与查找(五)——有个排序后的字符串数组,其中散布着一些空字符串,找出给定字符串的位置

/** * 功能:有个排序后的字符串数组,其中散布着一些空字符串,找出给定字符串的位置. */ /** * 思路:对二分查找法做修改,与mid比较的地方,如果mid为空字符串,则将mid换到离它最近的非空字符串的位置. * @param strings * @param str * @return */ public static int search(String[] strings,String str){ if(strings==null||str==null||str=="")

leetcode 双周赛9 找出所有行中最小公共元素

给你一个矩阵 mat,其中每一行的元素都已经按 递增 顺序排好了.请你帮忙找出在所有这些行中 最小的公共元素. 如果矩阵中没有这样的公共元素,就请返回 -1. 示例: 输入:mat = [[1,2,3,4,5],[2,4,5,8,10],[3,5,7,9,11],[1,3,5,7,9]] 输出:5 解法: 暴力解法  就是使用哈希记录每行 然后比较 代码 class Solution { public: unordered_map<int, int> umap[510]; int smalle

位运算 找出给定的数中其他数都是两个,有两个是一个的数

题目大意: 给定你n个数, 其中有n-2个数都是两两成对的,有两个是单独出现的,如n = 8, 2 3 2 5 3 6 4 6, 这时候4和5是单独的两个,所以答案就是4,5,其中n的范围是1e6. 思路: 之前做过找一个单独的数的题,那个题是用一个比较巧妙的方法来做的,不过这个也是一类经典问题,用到了强大的位运算,有了那个题的基础再来做这个题就简单了.(附:找一个的题目链接). 刚开始我是用了O(nlogn)的时间复杂度来做的,先排序,然后用类似找一个的方法找出第二个.我觉得对于1e6的数据量

leetcode 5 :Longest Palindromic Substring 找出最长回文子串

题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 翻译: 找出字符串s中最长的回文子串,字符串s的最长是1000,假设存在唯一的最长回文子串 法一:直接暴力破解 O(N3)的时间复杂度,运行超

找出给定的一个字符串中最大的不重复子串,不重复子串即一个子串中不出现两个相同的字符

思路一:先找出一个字符串中所有子串,再找出所有子串中最长的那一个:思路二:每次找出的子串长度都比上一次的子串长,则最后的子串即是最长子串的长度数.我选择的是第二种方法. public class FindSubstringMaxlengthNoduplicate { public static void main(String[] args) { String s = "adcdghcwioizhfksjdyuiodfhjskhgkhgeisdcjdkh"; ArrayList<

[LeetCode] 在一堆字符串中找出包含相同字符的 group的较快方法,题 Anagrams

题目: Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. class Solution { public: vector<string> anagrams(vector<string> &strs) { } }; 题意本身并不是很清晰,开始我的代码总是报Output Limit Exceeded,