The claw finding problem has been studied in terms of query complexity as one of the problems closely connected to cryptography. For given two functions, f and g, as an oracle which have domains of size N and M (N ≤ M), respectively, and the same range, the goal of the problem is to find x and y such that f (x) = g(y). This problem has been considered in both quantum and classical settings in terms of query complexity. In the bounded-error quantum setting, there is still a big gap between the known upper and lower bounds of query complexity for M = O(N2), whereas the known bounds are tight when M = Ω(N2). This paper describes a quantum-walk-based algorithm that solves this problem; it improves the previous upper bounds for M = O(N2). Our algorithm can be generalized to find a claw of k functions for any constant integer k > 1, where the domains of the functions may have different size. No nontrivial bounds have been known in this case as far as we know. The paper also gives an improved lower bound for M = O(N3/2). This lower bound, together with the previous lower bound, implies that our algorithm is optimal at M = Θ(N) and M = Ω(N2).