Dados dos enteros R y C , la tarea es encontrar el elemento en la fila R y la columna C.
Patrón:
- Primer elemento de i -ésima fila =
- Cada elemento es una diferencia creciente de progresión aritmética donde la diferencia común es 1.
- Término de diferencia inicial =
Ejemplos:
Entrada: R = 4, C = 4
Salida: 25
Explicación:
Patrón de tamaño 4 * 4 es –
1 3 6 10
2 5 9 14
4 8 13 19
7 12 18 25
Por lo tanto, Elemento en Pat[4][4] = 25
Entrada: R = 3, C = 3
Salida: 13
Explicación:
Patrón de tamaño 3 * 3 es –
1 3 6
2 5 9
4 8 13
Por lo tanto, elemento en Pat[3][3] = 13
Enfoque ingenuo: una solución simple es generar la array patrón de tamaño R * C y luego, finalmente, devolver el elemento en la fila R y la columna C.
Complejidad de tiempo: O(R*C)
Espacio auxiliar: O(R*C)
Enfoque eficiente: La idea es encontrar el primer término de la R -ésima fila usando las fórmulas y luego finalmente calcular el C -ésimo término de esa columna usando la ayuda de bucle .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation to compute the // R'th row and C'th column of the // given pattern #include <bits/stdc++.h> using namespace std; // Function to compute the // R'th row and C'th column of the // given pattern int findValue(int R, int C) { // First element of a given row int k = (R * (R - 1)) / 2 + 1; int diff = R + 1; // Element in the given column for (int i = 1; i < C; i++) { k = (k + diff); diff++; } return k; } // Driver Code int main() { int R = 4; int C = 4; // Function call int k = findValue(R, C); cout << k; return 0; }
Java
// Java implementation to compute the // R'th row and C'th column of the // given pattern import java.io.*; class GFG{ // Function to compute the R'th // row and C'th column of the // given pattern static int findValue(int R, int C) { // First element of a given row int k = (R * (R - 1)) / 2 + 1; int diff = R + 1; // Element in the given column for(int i = 1; i < C; i++) { k = (k + diff); diff++; } return k; } // Driver code public static void main (String[] args) { int R = 4; int C = 4; // Function call int k = findValue(R, C); System.out.println(k); } } // This code is contributed by mohit kumar 29
Python3
# Python3 implementation to find the # R'th row and C'th column value in # the given pattern # Function to find the # R'th row and C'th column value in # the given pattern def findValue(R, C): # First element of a given row k = (R*(R-1))//2 + 1 diff = R + 1 # Element in the given column for i in range(1, C): k = (k + diff) diff+= 1 return k # Driver Code if __name__ == "__main__": R = 4 C = 4 k = findValue(R, C) print(k)
C#
// C# implementation to compute the // R'th row and C'th column of the // given pattern using System; class GFG{ // Function to compute the R'th // row and C'th column of the // given pattern static int findValue(int R, int C) { // First element of a given row int k = (R * (R - 1)) / 2 + 1; int diff = R + 1; // Element in the given column for(int i = 1; i < C; i++) { k = (k + diff); diff++; } return k; } // Driver code public static void Main() { int R = 4; int C = 4; // Function call int k = findValue(R, C); Console.Write(k); } } // This code is contributed by Code_Mech
Javascript
<script> // Javascript implementation to compute the // R'th row and C'th column of the // given pattern // Function to compute the R'th // row and C'th column of the // given pattern function findValue(R, C) { // First element of a given row let k = (R * (R - 1)) / 2 + 1; let diff = R + 1; // Element in the given column for(let i = 1; i < C; i++) { k = (k + diff); diff++; } return k; } // Driver Code let R = 4; let C = 4; // Function call let k = findValue(R, C); document.write(k); </script>
25
Publicación traducida automáticamente
Artículo escrito por dazzling_coder y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA